int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        int m[n], count = 0, val = 0;
        for (int x = 2; x <= n; x++) {  //判断2-n之间的素数
            for (int y = 1; y <= x; y++)
                if (x % y == 0) count++;
            if (count == 2) m[val++] = x;  //将素数值放入数组中
            count = 0;
        }
        for (int z = 0; z < val; z++)  //依次输出数组中的素数
            printf("%d ", m[z]);
        //清0个数为 n - 素数个数 - 1,1为val值在最后一次赋值后还会自加1,所以这里要减1
        printf("\n%d\n", n - val - 1);
    }
    return 0;
}