Cod sursa(job #384475)

Utilizator SchifeCodreanu Razvan Schife Data 20 ianuarie 2010 10:00:44
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<stdio.h>
#include<stdlib.h>
#define SIZE 2000000
char x[SIZE];
int main()
{int n;
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') printf("%d ", i);   //afisare
fclose(stdin);
fclose(stdout);
    return 0;
    }