Pagini recente » Cod sursa (job #1646585) | Cod sursa (job #126672) | Cod sursa (job #1230421) | Cod sursa (job #2039049) | Cod sursa (job #144637)
Cod sursa(job #144637)
#include<stdio.h>
#include<string.h>
//#include<timer.h>
#define N 100000
//using namespace std;
char v[N+1];
int n,x;
int vect[N];
/*void ciur1(){
int i,j;
memset(v,0,N);
v[0]=v[1]=1;
for (i=2;i<=N;++i)
if (v[i]==0){
for (j=i+i;j<=N;j+=i)
v[j]=1;
}
}
void ciur2(){
int i,j;
memset(v,0,N);
v[0]=1;v[1]=1;
for (i=4;i<=N;i+=2)
v[i]=1;
for (i=3;i<=N;i+=2)
if (v[i]==0)
for (j=i+i;j<=N;j+=i)
v[j]=1;
}*/
void ciur3(){
int i,j;
memset(v,0,n);
v[0]=v[1]=1;vect[1]=2;x=1;
for (i=4;i<=n;i+=2)
v[i]=1;
for (i=3;i<=n;i+=2)
if (v[i]==0){
++x;vect[x]=i;
for (j=i*i;j<=n;j+=i)
v[j]=1;
}
}
int main(){
//timer t;
int i;
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
scanf("%d",&n);
ciur3();
if (x<=1000){
printf("%d\n",x);
for (i=1;i<=x;++i)
printf("%d ",vect[i]);
}
else{
printf("%d\n",x);
for (i=x-999;i<=x;++i)
printf("%d ",vect[i]);
}
return 0;
}