Cod sursa(job #1851845)
Utilizator | Data | 20 ianuarie 2017 10:20:27 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include <cstdio>
using namespace std;
int ciur[2000005];
int primes[2000005];
int main()
{
freopen("ciur.in", "r", stdin);
freopen("ciur.out", "w", stdout);
int n,i,j,np;
np = 0;
scanf("%d", &n);
for(i = 2;i <= n;++i){
if(ciur[i] == 0){
ciur[i] = i;
primes[++np] = i;
}
for(j = 1;j <= np && primes[j] <= ciur[i] && 1LL*i*primes[j] <= n;++j){
ciur[i * primes[j]] = primes[j];
}
}
printf("%d", np);
return 0;
}