370
Cerinţa
Să se scrie un program care citeşte de la tastatură un număr natural n şi apoi un şir de n numere naturale şi determină cel mai mare număr prim din șir și de câte ori apare.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale.
Date de ieşire
Programul afișează pe ecran numerele M nrap, separate printr-un spațiu, reprezentând cel mai mare număr prim din șir și de câte ori apare acest număr în șir.
Restricţii şi precizări
0 < n < 1000- cele
nnumere citite vor fi mai mici decât2.000.000.000 - pentru toate testele de evaluare, datele de intrare vor conține cel puțin un număr prim
Exemplu
Intrare
5 8 7 11 9 11
Ieșire
11 2
#include <bits/stdc++.h>
using namespace std;
int prim(int n);
int main ()
{
int n;
cin >> n;
int a[1001];
int cnt=0,max=0;
for (int i = 0 ; i < n ; ++i)
{
cin >> a[i];
if(prim(a[i]))
{
if (a[i] >= max)
max=a[i];
}
}
for (int i = 0 ; i < n; ++i)
{
if (a[i]==max)
cnt++;
}
cout << max << ' ' << cnt;
return 0;
}
int prim(int n)
{
int cnt=0;
for (int i = 1 ; i * i <= n; ++i)
{
if (n%i==0)
cnt+=2;
if (i*i==n)
cnt--;
}
if (cnt == 2)
return 1;
else
return 0;
}
Comentarii