Cod sursa(job #384489)

Utilizator SchifeCodreanu Razvan Schife Data 20 ianuarie 2010 10:19:36
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<stdio.h>
#include<stdlib.h>
#define SIZE 2000000
char x[SIZE];
int main()
{int n,nr=0;
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
scanf("%d",&n); // citeste n
for(int i=1; i<=n ;i++) x[i] = '1'; // initializarea vectorului de flaguri
x[1] = '0'; // 1 nu e numar prim
for(int i=2;i<=n;i++)
{       if (x[i] == '1') //verifica daca i este prim
        for(int j=i+i;j<=n;j+=i) x[j] = '0'; // daca i este prim, marcheaza in vectorul de flaguri toti multiplii lui i ca fiind neprimi
        }
for(int i=1; i<=n ;i++) 
{if (x[i]=='1')
nr++;
}
printf("%d ", nr);   //afisare
fclose(stdin);
fclose(stdout);
    return 0;
    }