Pagini recente » Cod sursa (job #1857945) | Cod sursa (job #1241317) | Cod sursa (job #2457390) | Cod sursa (job #1909898) | Cod sursa (job #144741)
Cod sursa(job #144741)
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
#define FIN "ciur.in"
#define FOUT "ciur.out"
#define MAX_V 2000005
unsigned char C[MAX_V];
int A[1000000];
int N, Pr;
void solve ()
{
int rd = (int) sqrt (N);
for (int i = 2; i <= rd; ++i)
{
int j = i*i;
while (j <= N)
{
C[j] = 1;
j+=i;
}
}
for (int i = 2; i <= N; ++i)
if (C[i] != 1) A[++Pr] = i;
}
int main ()
{
freopen (FIN, "r", stdin);
freopen (FOUT, "w", stdout);
scanf ("%d", &N);
solve ();
printf ("%d\n", Pr);
int i;
if (Pr > 1000)
for (i = Pr - 999; i <= Pr; ++i) printf ("%d ", A[i]);
else for (i = 1; i <= Pr; ++i) printf ("%d ", A[i]);
return 0;
}