Cod sursa(job #147289)
| Utilizator | Data | 2 martie 2008 19:20:40 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include<stdio.h>
#define input "ciur.in"
#define output "ciur.out"
#define Nmax 2000005
char x[Nmax];
int main()
{
freopen(input,"r",stdin);
freopen(output,"w",stdout);
int n,nr=0,rsp[1025],j;
scanf("%d",&n);
for(int i=2;i<=n;++i)
{
if(x[i]!='0')
{
nr++;
if(nr<1001)
rsp[nr]=i;
for(j=i*i;(j<=n)&&(i<3000);j+=i) x[j]='0';
printf("%d %d\n",i,j);
}
}
printf("%d\n",nr);
for(int i=1; (i<=nr) && (i<=1000); i++) printf("%d ",rsp[i]);
return 0;
}
