Cerința
Se dă un șir a
1
, a
2
, …, a
n
format din n
numere naturale. Determinați numărul de perechi de elemente din șir (a
i
,a
j
)
cu i < j
, care au suma număr prim.
Date de intrare
Programul citește de la tastatură numărul n
, iar apoi n
numere naturale, separate prin spații.
Date de ieșire
Programul va afișa pe ecran numărul rezultatelor care sunt numere prime.
Restricții și precizări
2 ≤ n ≤ 100.000
- elementele șirului vor fi mai mici decât
10.000
Exemplu
Intrare
3 2 5 9
Ieșire
2
Explicație
Sumele obţinute sunt 2+5=7 , 2+9=11 , 5+9=14
. Dintre rezultatele obţinute, două sunt prime, 7
şi 11
.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema prim007:
#include <iostream>
using namespace std;
long long n,i,j,k,p[21000],prim[3000],v[21000],x,nr,nr1;
int main()
{
cin >> n ;
p[1] = 1 ;
p[2] = 0 ;
for ( i=2 ; i<=20000 ; i++ )
if ( p[i]==0 )
{
k++ ;
prim[k] = i ;
j = i+i ;
while (j<=20000)
{
p[j] = 1 ;
j = j+i ;
}
}
for ( i=1 ; i<=n ; i++)
{
cin >> x ;
v[x]++ ;
}
nr = 0 ;
for ( i=2 ; i<=k ; i++ )
for ( j=1 ; j<=prim[i] ; j=j+2 )
nr = nr+v[j]*v[prim[i]-j] ;
if (v[1]>1) nr = nr+v[1]*(v[1]-1)/2 ;
nr = nr+v[0]*v[2] ;
cout << nr ;
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #2329 prim007
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2329 prim007 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!