Informatică, întrebare adresată de Junko912, 8 ani în urmă

#2329 prim007 pbinfo;
Cerința
Se dă un şir format din n numere naturale. Dacă se adună oricare două numere din şir, aflaţi câte dintre rezultatele obţinute sunt numere prime.

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
cele n numere citite vor fi mai mici decât 10.000
In C++, va rog!

Răspunsuri la întrebare

Răspuns de andrei750238
1

#include <iostream>



using namespace std;



bool prim(int n) {



for (int i = 2; i <= n / 2; i++) {


 if (n%i == 0)


  return 0;


}



return 1;


}




int main() {


int n, suma, contor =0;


cin >> n;


int sir[100];



cout << "Introduceti numerele :";



for (int i = 0; i < n; i++) {


 cin >> sir[i];


}



for (int j = 0; j < n; j++) {


 for (int k = 0; k < n; k++) {


  suma = sir[j] + sir[k];


  if (prim(suma))


   contor++;



 }


}



cout << endl << contor;


}


andrei750238: Functioneaza ( oarecum ). Apar uneori si dubluri...
Alte întrebări interesante