Cod sursa(job #2172085)
Utilizator | Daniel Rusu DanielRusu | Data | 15 martie 2018 14:58:47 |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.6 kb |
#include <iostream>
#include <cstdio>
using namespace std;
int ans, N;
char CE[2000005];
void Ciur() {
CE[0] = CE[1] = 1;
ans--;
for(long long i = 2; i <= N; ++i) {
if(CE[i] == 0) {
for(long long j = i * i; j <= N; j += i) {
if(CE[j] == 0) {
ans--;
}
CE[j] = 1;
}
}
}
}
int main() {
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
scanf("%d", &N);
ans = N;
Ciur();
cout << ans << '\n';
return 0;
}