Cod sursa(job #2352548)

Utilizator silkMarin Dragos silk Data 23 februarie 2019 13:36:51
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include <bits/stdc++.h>
#define MaxN 2000000
#define MaxP 150000
using namespace std;

char is[MaxN+1];
int prime[MaxP+1];
int N, P;

int main(){
    freopen("ciur.in", "r", stdin);
    freopen("ciur.out", "w", stdout);

    int i, j;

    scanf("%d", &N);
    for(i = 2; i <= N; ++i)
    {
        if(!is[i]) prime[++P] = i;
        for(j = 1; j <= P && i * prime[j] <= N; ++j)
        {
            is[i * prime[j]] = 1;
            if(i % prime[j] == 0) break;
        }
    }

    printf("%d\n", P);


return 0;
}