Cod sursa(job #2691773)
Utilizator | Popescu Serban SerbaP123 | Data | 29 decembrie 2020 22:29:33 |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.6 kb |
#include <fstream>
#define nmax 2000005
using namespace std;
ifstream cin("ciur.in");
ofstream cout("ciur.out");
char v[nmax];
inline void solve(){
int cnt = 0, n;
cin >> n;
for(int i = 2; i <= n; ++i){
v[i] = 1;/// presupunem ca toate numerele mai mari ca doi si mai mici ca n sunt prime
}
for(int i = 2; i <= n; ++i){
if(v[i]){
cnt++;
for(int j = 2 * i; j <= n; j += i){
v[j] = 0; /// aplicam ciurul lui eratostene
}
}
}
cout << cnt;
}
int main(){
solve();
return 0;
}