Cerinţa
Se dau n
numere naturale mai mici decât 1.000.000
. Determinaţi câte dintre ele sunt prime.
Date de intrare
Fişierul de intrare eratostene.in
conţine pe prima linie numărul n
; urmează cele n
numere, dispuse pe mai multe linii şi separate prin spaţii.
Date de ieşire
Fişierul de ieşire eratostene.out
va conţine pe prima linie numărul C
, reprezentând numărul valorilor citite care erau numere prime.
Restricţii şi precizări
1 ≤ n ≤ 1.000.000
Exemplu
eratostene.in
6 12 18 19 25 29 7
eratostene.out
3
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 Eratostene:
#include <iostream>
#include <fstream>
#define NN 1000000
using namespace std;
ifstream fin("eratostene.in");
ofstream fout("eratostene.out");
int n, v[NN];
int main(){
v[0] = v[1] = 1;
for(int i=2;i*i<NN; ++i)
if(v[i]==0)
for(int j=2;i*j<NN;++j)
v[i*j] = 1;
fin >> n;
int x,C = 0;
for(int i=1;i<=n;++i){
fin >> x;
if(v[x]==0)
C ++;
}
fout << C;
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 #303 Eratostene
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #303 Eratostene 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!