Pagini recente » Cod sursa (job #2267673) | Cod sursa (job #2275885) | Cod sursa (job #532821) | Cod sursa (job #1992800) | Cod sursa (job #145936)
Cod sursa(job #145936)
#include<stdio.h>
#include<math.h>
char prim[2000010];
int sol[150024], Nsol=0;
int cate = 0;
int main(){
FILE *fin = fopen("ciur.in","r"),
*fout = fopen("ciur.out","w");
int N;
fscanf(fin,"%d",&N);
int i;
for(i=2;i<=(int)sqrt((double)N);i++)
if(!prim[i]){
cate ++;
sol[++Nsol] = i;
for(int j=i; (long long)j*i <= (long long)N; j++)
prim[i*j] = 1;
}
for(;i<=N;i++)
if(prim[i] == 0){
sol[++Nsol] = i;
cate ++;
}
fprintf(fout,"%d\n",cate);
for(int i= (cate-1000+1 < 1)?1:cate-1000+1;i<=cate;i++)
fprintf(fout,"%d ", sol[i]);
fclose(fin);
fclose(fout);
return 0;
}