# PBinfo #3353 – Factori2 – Rezolvare C++

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

## Enunț

Cerința
Se dau două numere naturale. Afișați numărul pentru care produsul factorilor primi este mai mare. Dacă cele două numere au același produs al factorilor primi, afișați-l pe cel mai mic.

Date de intrare
Programul citește de la tastatură două numere naturale.

Date de ieșire
Programul va afișa pe ecran numărul cerut.

Restricții și precizări

cele două numere citite vor fi mai mici decât 1.000.000.000

Exemplu:
Intrare

36 26
Ieșire

26
Explicație
Factorii primi ai lui 36 sunt 2 și 3, cu produsul 6. Factorii primi ai lui 26 sunt 2 și 13, cu produsul 26. Rezultatul este 26, pentru că are produsul factorilor primi mai mare.

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int n, m, S = 1, s = 1;
int main() {
    cin >> n >> m;
    int a = n , b = m;
    int d = 2;
    while (n > 1) {
        if (n % d == 0) {
            S = S * d;
            while (n % d == 0)
                n = n / d;
        } d++;
        if (d * d > n) d = n;
    } d = 2;
    while (m > 1) {
        if (m % d == 0) {
            s = s * d;
            while (m % d == 0)
                m = m / d;
        } d++;
        if (d * d > m) d = m;
    } if (S > s) cout << a;
    else if (S < s) cout << b;
    else if (a < b) cout << a;
    else cout << b;
    return 0;
}
```

## Resurse

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