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
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema Divizori:
#include <iostream>
using namespace std;
int n, b[1005], p[1005], k;
int main() {
cin >> n;
int m = n, d = 2;
while(m>1)
{
int pp = 0;
while(m % d == 0)
pp ++ , m /= d;
if(pp)
{
k++;
b[k] = d, p[k] = pp;
}
d ++;
if(m > 1 && d*d > m )
d = m;
}
int x = 1;
cout << x << " ";
for(int i =1 ; i <= k ; i++)
for(int j = 1; j <= p[i] ; j ++)
{
x *= b[i];
cout << x << " ";
}
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #570 Divizori
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #570 Divizori de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!