304
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