Cod sursa(job #1851845)

Utilizator alittlezzCazaciuc Valentin alittlezz 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;
}