Cod sursa(job #523743)

Utilizator unudoitreiRusu Alexandru unudoitrei Data 19 ianuarie 2011 08:58:12
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
/*#include<stdio.h>
int main(void) 
{
    int i, j, n, count;
    char prim[2000005];
    freopen("eratostene.in","r",stdin);
    freopen("eratostene.out", "w",stdout);
    scanf("%d",&n);
    for(j=2;j<=n;++j)
        prim[j]=1;
    for(j=2;j<=n; ++j)
        if(prim[j])
		{
            ++count;
            for(i=j+j;i<=n;i+=j)
                prim[i]=0;
		}
    printf("%d\n",count);
    return 0;
}
*/#include <stdio.h>

int main(void) {

    int i, j, n, count;
    char prim[2000005];

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

    scanf("%d", &n);

    for(j = 2; j <= n; ++j)
        prim[j] = 1;

    for(j = 2; j <= n; ++j)
        if(prim[j]) {

            ++count;
            for(i = j + j; i <= n; i += j)
                prim[i] = 0;
        }

    printf("%d\n", count);

    return 0;
}