Pagini recente » Cod sursa (job #82648) | Cod sursa (job #770596) | Cod sursa (job #1061389) | Cod sursa (job #1544694) | Cod sursa (job #144543)
Cod sursa(job #144543)
#include <cstdio>
const int maxn = 2000001;
FILE *in = fopen("ciur.in","r"), *out = fopen("ciur.out","w");
int n;
char x[maxn]; // x[i] = 1 daca i nu e prim
int sol[1001];
int main()
{
fscanf(in, "%d", &n);
for ( int i = 4; i <= n; i += 2 )
x[i] = 1;
int cnt = 0;
for ( int i = 3; i*i <= n; i += 2 )
if ( !x[i] )
for ( int j = i*i; j <= n; j += i )
x[j] = 1;
int nrp = 0;
for ( int i = n; i > 1; --i )
if ( !x[i] )
{
++cnt;
if ( nrp < 1000 )
sol[++nrp] = i;
}
fprintf(out, "%d\n", cnt);
for ( int i = nrp; i; --i )
fprintf(out, "%d ", sol[i]);
fprintf(out, "\n");
return 0;
}