Pagini recente » Cod sursa (job #386641) | Cod sursa (job #115208) | Cod sursa (job #2439606) | Cod sursa (job #1576233) | Cod sursa (job #145935)
Cod sursa(job #145935)
#include<stdio.h>
#include<math.h>
char prim[2000010];
int sol[1024], 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 ++;
if(Nsol < 1000)
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){
if(Nsol < 1000)
sol[++Nsol] = i;
cate ++;
}
fprintf(fout,"%d\n",cate);
if(cate > 1000)
cate = 1000;
for(int i=1;i<=cate;i++)
fprintf(fout,"%d ", sol[i]);
fclose(fin);
fclose(fout);
return 0;
}