290
Cerința
Se dau n
numere naturale. Determinați cel mai mare număr care are un singur factor prim. Dacă nu există niciun număr cu un singur factor prim se va afișa mesajul NU EXISTA
.
Date de intrare
Programul citește de la tastatură numărul n
, iar apoi n
numere naturale.
Date de ieșire
Programul va afișa pe ecran numărul cerut.
Restricții și precizări
1 ≤ n ≤ 1000
- cele
n
numere citite vor fi mai mici decât1.000.000.000
Exemplu
Intrare
5 12 9 16 4 20
Ieșire
16
Explicație
Dintre numere citite au un factor prim numerele 9 16 4
. Dintre acestea cel mai mare este 16
.
#include <bits/stdc++.h> using namespace std; int prm(int n){ int d = 2, cnt = 0; while(n > 1){ if(n % d == 0) cnt++; while(n % d == 0) n/=d; d++; if(d * d > n) d = n; } return cnt; } int main(){ int n, x, maxi = 0; cin >> n; for(int i = 1; i <= n; ++i){ cin >> x; if(prm(x) == 1 && x > maxi) maxi = x; } if(maxi != 0) cout << maxi; else cout << "NU EXISTA"; return 0; }
Comentarii