Cod sursa(job #1567981)

Utilizator danyvsDan Castan danyvs Data 13 ianuarie 2016 20:41:01
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <cstdio>

using namespace std;

FILE *f=fopen("ciur.in","r");
FILE *g=fopen("ciur.out","w");

bool a[2000001];
int n;

void Ciur()
{
    int i,j;
    a[2]=true;
    for (i=3; i<=n; i=i+2)
        a[i]=true;
    for (i=3; i*i<=n; i=i+2)
        if (a[i]==true)
            for (j=3*i; j<=n; j=j+2*i)
                a[j]=false;
}

void Afisare()
{
    int i;
    for (i=2; i<=n; i++)
        if (a[i]==true)
            fprintf(g,"%d ",i);
}

int CtNrPrime()
{
    int i,ct;
    ct=0;
    for (i=2; i<=n; i++)
        if (a[i]==true)
            ct++;
    return ct;
}

int main()
{
    fscanf(f,"%d",&n);
    Ciur();
    //Afisare();
    fprintf(g,"%d",CtNrPrime());
    fclose(f);
    fclose(g);
    return 0;
}