236
Cerința
Se dă un număr natural nenul n
. Să se construiască un șir strict crescător de lungime maximă a[i]
cu proprietatea că:
- fiecare element al șirului este divizor al lui
n
a[i]
este divizor al luia[i+1]
Date de intrare
Programul citește de la tastatură numărul n
.
Date de ieșire
Programul va afișa pe ecran elementele șirului construit, separate printr-un spațiu.
Restricții și precizări
1 ≤ n ≤ 1.000.000.000
- dacă există mai multe șiruri de lungime maximă care respectă condițiile, se poate afișa oricare
Exemplu
Intrare
12
Ieșire
1 2 6 12
#include <bits/stdc++.h> using namespace std; int a[1001] , n , ind; int main() { cin >> n; for(int i = 1 ; i*i <= n ; i++) { if(n%i==0) { a[ind]=i , ind++; if(i*i!=n) a[ind]=n/i , ind++; } } sort(a , a+ind); int x = 1; for(int i = 0 ; i < ind ; i++) if(a[i]%x==0)cout << a[i] << " " , x = a[i]; }
Comentarii