Problema e simpla.
Iei ca variabile de tip întreg n, x, max=-1, c =0, p=1
Și o variabila bool prim = false;
Faci o singura parcurgere ceva de genul :
for (int i = 0; i < n; i++)
Și in for citești un x
Verifici dacă e prim cu secventele astea (sunt pe telefon asa ca nu ți le scriu în c++)
prim = true;
If (x < 2)
Prim = false;
Parcurgem posibili divizori
For (int d = 2 ; d <= sqrt(x) & &prim;d++)
If (x%d==0)
Prim = false;
Și acum faci maximum cu grija. (tot în primul for e și asta)
If (prim)
If (max == x)
p++;
Else if (max < x)
{ max =x; p = 1;}
Aici se termina for.
Și afișezi max și p.
Succes!