我被要求创建两个函数,第一个是is_divisible(n,primes)来检查一个数字是否可以被素数中的任何其他数字整除
然后第二个将使用第一个来查找特定范围内的所有素数。
我不知道为什么,但我无法弄清楚如何让素材显示出来。关于我做错了什么明显的事情?
def is_divisible(n, primes):
for p in primes:
if n % p == 0:
return True
else:
return False
def find_primes(N):
primes=[]
for n in range(2, N+1):
is_divisible(n,primes)
if False:
primes.append(n)
print(primes)
find_primes(20)
答案 0 :(得分:1)
def is_divisible(n, primes):
for p in primes:
if n % p == 0:
return True
return False # Only return False if no matches
def find_primes(N):
primes=[]
for n in range(2, N+1):
if not is_divisible(n,primes)
primes.append(n)
print(primes)
print find_primes(20)
答案 1 :(得分:0)
这个if语句永远不会成立:
if False:
primes.append(n)
重写这样的代码:
if is_divisible(n,primes)==False:
primes.append(n)
答案 2 :(得分:0)
此代码错误:
is_divisible(n,primes)
if False:
primes.append(n)
您应该检查if条件中是否存在可分性。试试这个:
if not is_divisible(n,primes):
primes.append(n)
Python将0评估为False,否则评估所有数字。 因此,没有必要做“if condition == True”之类的事情。只使用条件。