# PBinfo #62 – factorizare – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

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 = 33 * 51.

## Cod sursă C++

```cpp
#include <bits/stdc++.h>
using namespace std;
int n;
int main() {
    cin >> n;
    int nr = 2, temp;
    while (n > 1) {
        temp = 0;
        while (n % nr == 0) {
            temp++;
            n = n / nr;
        } if (temp) cout << nr << " " << temp << endl;
        nr++;
        if (n > 1 && nr * nr > n) nr = n;
    } return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/62)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/62/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-62/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
