Cod sursa(job #1490534)
| Utilizator | Data | 23 septembrie 2015 19:09:31 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include <fstream>
#include <iostream>
#include <cmath>
using namespace std;
bool prim[2000001];
int n, prime;
long int m, d;
ifstream fi("ciur.in");
ofstream fo("ciur.out");
int main () {
fi >> n;
for (d = 2; d <= n; d++)
prim[d] = true;
for (d = 2; d <= n; d++)
if (prim[d]) {
for (m = d * d; m <= n; m += d) // d * d
prim[m] = false;
prime++;
}
fo << prime;
return 0;
}
/*
-2100000000 -20999999999 ... 0 1 2 ... 2100000000
01111111111111111111111111111111
10000000000000000000000000000000
1*/
