#include <stdio.h> int main() { int n = 0; int arr[99] = { 0 }; int index = 0;//用来找下标 int count = 0; while (scanf("%d", &n) != EOF) { count = 0; for (int i = 0; i <= n; i++) { arr[i] = i; } for (int i = 2; i <= n; i++) { for (int j = 2; j <= n; j++) { if (arr[j] == i) { index = j;//找到下标 break; } } //清零操作 for (int a = index + 1; a <= n; a++) { if (arr[a] % i == 0 && arr[a] != 0) { arr[a] = 0; count++; } } } for (int i = 2; i <= n; i++) { if (arr[i] != 0) { printf("%d ", arr[i]); } } printf("\n"); printf("%d\n", count); } return 0; }