Cod sursa(job #1699494)
Utilizator | Data | 7 mai 2016 15:41:53 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.52 kb |
#include <cstdio>
#include <vector>
using namespace std;
int low[2000005];
vector <int> primes;
void ciur(int N){
for(int i = 2; i <= N; i++){
if(!low[i]){
low[i]=i;
primes.push_back(i);
}
for(int j=0; j < primes.size() && primes[j] <= low[i] && primes[j]*i <= N; j++)
low[primes[j]*i]=primes[j];
}
}
int main(){
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
int n;
scanf("%d",&n);
ciur(n);
printf("%d",primes.size());
}