#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#define NUM 100
int main()
{
	int num = 0;
	while (~scanf("%d", &num))//多组输入
	{
		int arr[NUM] = { 0 };
        //向数组中存入数据
		for (int i = 2; i <= num; i++)
		{
			arr[i] = i;//一一对应上
		}

		//筛选法
		
		for (int i = 2; i <= num; i++)
		{
			for (int j = i + 1; j <= num; j++)//将数组中2之后的所有能被2整除的数清0
				                              //再将3之后的所有能被3整除的数清0 
			{
				if (arr[j] % i == 0)//将不是素数的数赋值为 0
				{
					arr[j] = 0;
				}
			}
		}

		//输出
		int cnt = 0;//计数器  //统计不是素数的数
		for (int i = 2; i <= num; i++)
		{
			if (arr[i] != 0)
			{
				printf("%d ", arr[i]);//输出素数
			}
			else
				cnt++;
		}
		printf("\n%d\n", cnt);//输出不是素数的数
	}



	return 0;
}