👤
Diuva
a fost răspuns

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 n numere citite vor fi mai mici decât 2.000.000.000
pentru toate testele de evaluare, datele de intrare vor conține cel puțin un număr prim


Răspuns :

#include <iostream>

using namespace std;

bool prim (int num)

{

   if (num==0 || num==1) return false;

   if (num==2) return true;

   if (num>2)

   {

       if (num%2==0) return false;

       for (int i=3; i*i<=num; i+=2)

           if (num%i==0) return false;

       return true;

   }

}

int main()

{

   int n, i, maxprim=0, nr_ap=0, num;

   cin >> n;

   for (i=1; i<=n; ++i)

   {

       cin >> num;

       if (prim(num))

           {

               if (num>maxprim)

               {

                   maxprim=num; nr_ap=1;

               }

               else

               {

                   if (num==maxprim) ++nr_ap;

               }

           }

   }

   cout << maxprim << " " << nr_ap;

   return 0;

}