• 这是一道很好的算法题。。。
    • 1.涉及推导式生成数据列表
    • 2.涉及列表元素的判断、列表元素的删除
    • 3.涉及列表的解包输出、涉及删除元素个数的计算
n = int(input())
# 用推导式求出整个数组的列表
lines = [i for i in range(2,n+1)]
# 循环遍历,每个元素
for i in range(2,n+1):
# 判断这个数是不是存在,不存在结束循环
    if i not in lines:
        continue
# # 若存在,则取出对应位置的索引,然后作为内存循环的下界,遍历删除整除的数
    else:
        j = lines.index(i)
        for j in range(len(lines)-1,j,-1):
            if lines[j] % i == 0:
                lines.pop(j)
# 打印结果,用*解包。。。。。
print(*lines)
# 计算清0的个数。。。。
print(n-1-len(lines))