我必须创建一个消耗2个列表和素数的函数,如果L与素数相关,则生成True,否则生成False,否则
这是我的代码我认为它看起来不错,但问题是它应该不会产生False,我似乎无法找到错误。谢谢你能快速找到问题的人!
帮助我告诉我是否有素数
def is_prime(a):
prime = True
if a < 2:
prime = False
else:
for i in (2, a):
if a%i == 0:
prime = False
break
return prime
问题似乎发生的主要功能
def check_related_over_prime(L,M,p):
related_over_prime = True
for i in range(len(L)):
if is_prime(i):
difference = L[i] - M[i]
if (difference % p != 0):
related_over_prime = False
break
return related_over_prime
例如:这是一个测试,当它应该通过时,测试在它应该失败时通过
测试1:p = 3 -> True
L1 = [0,1,4, 5, 6,10]
M1 = [0,1,1,-1,10, 1]
check.expect('T1', check_related_over_prime(L1,M1,3), True)
测试2:p = 3 -> False
L2 = [0,1,4, 5, 6,10]
M2 = [0,1,0,1,10, 11]
check.expect('T2', check_related_over_prime(L2,M2,3), False)
答案 0 :(得分:2)
for i in (2, a):
应为for i in range(2, a)
。 (2, a)
是一个元组,您的支票仅为2和a
,而不是两者之间的全部。