Cod sursa(job #2573912)

Utilizator rebecca0312Andrei Rebecca rebecca0312 Data 5 martie 2020 19:24:51
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.56 kb
#include<bits/stdc++.h>
using namespace std;

const int NMAX=2000005;
bool ciur[NMAX];

void preComp(int n){
    ciur[0]=ciur[1]=1;
    for(int i=2;i<=n/2;i++)
        ciur[i*2]=1;
    for(int d=3;d*d<=n;d+=2)
        if(!ciur[d])
            for(int i=d;i*d<=n;i+=2)
                ciur[i*d]=1;
}

int main(){
    freopen("ciur.in","r",stdin);
    freopen("ciur.out","w",stdout);
    int n,sol=0;
    scanf("%d", &n);
    preComp(n);
    for(int i=2;i<=n;i++)
        if(!ciur[i])
            sol++;
    printf("%d", sol);
    return 0;
}