所以我试图在python中编写这个程序,首先返回给定数字的素数,然后返回从2开始不可分割的所有数字。
所以例如n是被测试的数字,如果我prime(10)
它应该返回{2, 3, 5, 7}
,我知道如何做到但我不确定如何打印出数字2到n的列表不能被集合中的任何素数整除。
答案 0 :(得分:1)
def printPrimesUpToN(n):
isPrime = [True] * (n + 1) # Values are prime unless eliminated later
for num in range(2, n + 1): # Loop over all values
if isPrime[num]: # If not yet eliminated, it's prime
print num
# Eliminate multiples of this prime
for multiple in range(num, n + 1, num): isPrime[multiple] = False
printPrimesUpToN(100)
2
3
5
7
11
13
17
19
[...]
对于不能被另一组n
的任何成员整除的s
之前的数字,请使用类似的方法。消除<= n
中每个元素的倍数s
,并接受其余元素。