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.
#include <bits/stdc++.h> using namespace std; long long desc(long long n){ long long prod = 1; long long d = 2; while(n > 1){ int p = 0; while(n % d == 0) n/=d, p++; if(p) prod*= d; d++; if(d * d > n) d = n; } return prod; } int main(){ long long a, b; cin >> a >> b; long long prod1 = desc(a); long long prod2 = desc(b); if(prod1 > prod2) cout << a; else if(prod1 == prod2) cout << min(a, b); else cout << b; }