Cod sursa(job #201246)
| Utilizator | Data | 29 iulie 2008 22:21:48 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include<stdio.h>
#include<math.h>
#define MAX 2000000
int main(){
FILE *fin=fopen("ciur.in","r");
FILE *fout=fopen("ciur.out","w");
int N;
unsigned char a[MAX];
fscanf(fin,"%d",&N);
for(int i=1;i<=N;i++) a[i]=1;
int i=2;
for(int j=2;j*i<=N;j++) a[i*j]=0;
for(i=3;i<=sqrt(N)+1;i+=2)
for(int j=i;j*i<=N;j+=2) a[i*j]=0;
for(i=2;i<=N;i++)
if(a[i]==1) fprintf(fout,"%d ",i);
fclose(fin);
fclose(fout);
return 0;
}
