Cod sursa(job #2352548)
| Utilizator | Data | 23 februarie 2019 13:36:51 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
#include <bits/stdc++.h>
#define MaxN 2000000
#define MaxP 150000
using namespace std;
char is[MaxN+1];
int prime[MaxP+1];
int N, P;
int main(){
freopen("ciur.in", "r", stdin);
freopen("ciur.out", "w", stdout);
int i, j;
scanf("%d", &N);
for(i = 2; i <= N; ++i)
{
if(!is[i]) prime[++P] = i;
for(j = 1; j <= P && i * prime[j] <= N; ++j)
{
is[i * prime[j]] = 1;
if(i % prime[j] == 0) break;
}
}
printf("%d\n", P);
return 0;
}
