Cod sursa(job #936074)

Utilizator Master011Dragos Martac Master011 Data 5 aprilie 2013 14:22:55
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include<cstdio>
#define CLOSE fclose(in); fclose(out); return 0;
using namespace std;
FILE *in,*out;

const int LIM = 2000010;
char v[LIM+10];

int ciur(int n){
    int cnt =0;
    for(register int i = 2; i<=n; ++i)
        if(!v[i]){
            ++cnt;
            for(register long long j = (long long)i*i; j<=n; j+=i)
                v[j]=1;
        }
    return cnt;
}

int main(){
    in=fopen("ciur.in","r");
    out=fopen("ciur.out","w");

    int X;
    fscanf(in,"%d",&X);

    fprintf(out,"%d\n",ciur(X));

    CLOSE
}