//埃拉托斯特尼筛法(虽然难,但是最高效)
#include<stdio.h>
int main()
{
int n, arr[101];
while ((scanf("%d", &n))==1)
{
for (int a = 0; a <= n; a++)
{
arr[a] = 1;
}
arr[0] = arr[1] = 0;
int count = 0;
for (int b = 2; b * b <= n; b++)
{
if (arr[b] == 1)
{
for (int c = b * b; c <= n; c += b)
{
if (arr[c] == 1)
{
arr[c] = 0;
count++;
}
}
}
}
for (int d = 2; d <= n; d++)
{
if (arr[d] == 1)printf("%d ", d);
}
printf("\n%d\n", count);
}
}

京公网安备 11010502036488号