Cod sursa(job #1686363)

Utilizator CodrutLemeniCodrut Lemeni CodrutLemeni Data 12 aprilie 2016 10:59:19
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 2000000

using namespace std;

bool v[N];

int main(){
    int n,i,j,rad,nrprim;

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

    scanf("%d",&n);

    rad=sqrt(n)+1;
    for(i=3;i<rad;i+=2){

        if(v[i]==1){
            continue;
        }
        for(j=i*i;j<=n;j+=i){
            v[j]=1;
        }

    }

    nrprim=1;
    for(i=3;i<=n;i+=2){
        if(v[i]==0){
            nrprim++;
        }
    }

    printf("%d",nrprim);
    return 0;
}