570
Cerința
Se consideră un șir cu n elemente, numere naturale. Folosind metoda Divide et Impera, determinați cel mai mare element prim din acest șir.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi cele n elemente ale șirului.
Date de ieșire
Programul va afișa pe ecran numărul M, cel mai mare element prim al șirului.
Restricții și precizări
1 ≤ n ≤ 1000- elementele șirului vor fi mai mici decât
1.000.000 - se garantează că în șir apare cel puțin un element prim
- se recomandă folosirea metodei Divide et Impera
Exemplu
Intrare
64 1 8 4 3 5
Ieșire
5
#include <bits/stdc++.h>
using namespace std;
int prim(int n);
int main ()
{
int n,tmp,max=0;
cin >> n;
for (int i=1 ; i <= n; ++i)
{
cin >> tmp;
if (prim(tmp))
{
if (tmp>max)
max=tmp;
}
}
cout << max;
}
int prim(int n)
{
int cnt=0;
for (int i = 1; i <= sqrt(n); ++i)
{
if (n%i==0)
cnt+=2;
}
if (cnt==2)
return 1;
else
return 0;
}
Comentarii