#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;
}