Cod sursa(job #159832)

Utilizator sealTudose Vlad seal Data 14 martie 2008 14:13:11
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include<stdio.h>
#define Nm (1<<21)
char A[Nm];
int n,ans;

void read()
{
    freopen("ciur.in","r",stdin);
    scanf("%d",&n);
}

void solve()
{
    int i,j;

    ans=1;
    for(i=3;i*i<=n;i+=2)
        if(!A[i])
        {
            for(j=i*i;j<=n;j+=i<<1)
                A[j]=1;
        }

    for(i=3;i<=n;i+=2)
        if(!A[i])
            ++ans;
}

void write()
{
    freopen("ciur.out","w",stdout);
    printf("%d\n",ans);
}

int main()
{
    read();
    solve();
    write();
    return 0;
}