Cerinţa
Se citeşte un număr natural n
. Să se afişeze descompunerea în factori primi a lui n
.
Date de intrare
Programul citește de la tastatură numărul n
.
Date de ieşire
Programul afișează pe ecran perechile b p
, reprezentând factorii primi şi puterile corespunzătoare.
Perechile se afişează câte una pe o linie a ecranului, în ordinea crescătoare a bazelor. Cele două valori din pereche sunt separate printr-un spaţiu.
Restricţii şi precizări
1 < n < 2.100.000.000
Exemplu
Intrare
135
Ieșire
3 3 5 1
Explicație
135 = 3
3
* 5
1
.
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 Factorizare:
#include <iostream>
using namespace std;
void factorizare(int n){
}
int main(){
int n;
cin >> n;
int d = 2, // d va fi, pe rand, fiecare factor prim din descompunere
p; // p va fi puterea lui d in descompunere
// il im partim pe n la d in mod repetat, pana cand devine 1
while(n > 1)
{
// numaram de cate ori se imparte n la d. Aceasta va fi puterea lui d in descompunere
p = 0;
while(n % d == 0)
{
++p;
n /= d;
}
// daca s-a facut cel putin o impartire, afisam factorul si puterea
if(p)
cout << d << " " << p << endl;
++ d;
// daca d * d il depaseste pe n si n nu este 1, decidem ca n este prim,
// si este factor in descompunerea valorii initiale a lui n
if(n>1 && d * d > n){
cout << n << " 1" << endl; // vom afisa n la puterea 1
n = 1; // alti divizori primi nu mai sunt.
// oprim cautarea, dand lui n valoarea 1
}
}
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 #62 Factorizare
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #62 Factorizare 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!