Cod sursa(job #1143412)

Utilizator PetrescuAlexandru Petrescu Petrescu Data 15 martie 2014 15:46:11
Problema Ciurul lui Eratosthenes Scor 30
Compilator c Status done
Runda Arhiva educationala Marime 0.61 kb
#include <stdio.h>

int main(){
    FILE *fin,*fout;
    int n,i,ct,d;
    char v[2000000];

    fin=fopen("ciur.in","r");
    fout=fopen("ciur.out","w");
    fscanf(fin,"%d",&n);
    ct=0;
    for(i=2;i<n;i++){
        v[i]=1;
    }
    for(i=2;i<=n;i++){
        d=2;
        while(d*d<=i){
            if(v[d]==1){
                if(i%d==0){
                    v[i]=0;
                    d=i;
                }
            }
            d++;
        }
        if(v[i]==1){
            ct++;
        }
    }
    fprintf(fout,"%d",ct);
    fclose(fin);
    fclose(fout);
    return 0;
}