# PBinfo #63 – factorizare1 – Rezolvare C++

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

## Enunț

Cerinţa
Să se scrie un program care citeşte un număr natural n şi determină factorul care apare în descompunerea în factori primi a lui n la puterea cea mai mare.

Date de intrare
Programul citește de la tastatură numărul n.

Date de ieşire
Programul afișează pe ecran numărul prim p, cu semnificaţia precizată.

Restricţii şi precizări

1 < n < 2.100.000.000
dacă în descompunerea în factori primi a lui n apar mai mulţi factori la puterea maximă, se va afişa cel mai mare dintre ei

Exemplu:
Intrare

405
Ieșire

3
Explicație
405 = 34 * 51. Astfel, factorul care apare la puterea cea mai mare este 3

## Cod sursă C++

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

## Resurse

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