#include <stdio.h>
int main() {
int i = 0, n = 0, j = 0, arr[200] = { 0 };
int count = 0;
while (scanf("%d", &n) != EOF) {
for (i = 2; i <= n; i++) {
arr[i] = i;
}
for (i = 2; i <= n; i++) { //取出从2到n每一个数
for (j = 2; j < i;
j++) { //题目中说2之后所有数被2整除清零,3之后的所有数被3整除清零,以此类推,那么可以得出,当这个数为3时,一定会和2进行整除;当这个数为4时,一定会被2和3进行整除;当这个数为5时,一定会被2,3,4进行整除。因此得出该算法。
if (i % j == 0) {
arr[i] = 0;
}
}
}
for (i = 2; i <= n; i++) {
if (arr[i] != 0) {
printf("%d ", i);
} else {
count++;
}
}
printf("\n");
printf("%d\n", count);
}
return 0;
}