Pagini recente » Cod sursa (job #1390031) | Cod sursa (job #1846864) | Cod sursa (job #2963919) | Cod sursa (job #1811301) | Cod sursa (job #146700)
Cod sursa(job #146700)
#include <stdio.h>
#define mx 2000010
long i,j,n;
long v[1010];
char p[mx];
void ciur(int max)
{
for (i=1; i*i*2+2*i<=max; i++)
{
j=i*i*2+2*i;
while (2*j+1<=max)
{
p[j]=1;
j=j+2*i+1;
}
}
for (i=(max-1)/2; i>0; i--)
if (p[i]==0)
{
v[0]++;
if (v[0]<1000)
v[v[0]]=2*i+1;
}
if (v[0]<1000)
v[v[0]+1]=2;
v[0]++;
}
int main()
{
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
scanf("%ld",&n);
ciur(n);
printf("%ld\n",v[0]);
if (v[0]>1000)
j=v[0]-1000;
else j=1;
for (i=v[0]; i>=j; i--)
printf("%ld ",v[i]);
fclose(stdin);
fclose(stdout);
return 0;
}