Python 函数 partition() 将整数 m 作为输入,如果 m 可以被划分为素数,则返回 True,否则返回 False。我试过这个代码,但这不适用于所有测试用例!!例如 - 输入“185”,输出应为“False”,但此代码返回“True”def partition(num): primelist = primes(num) for x in primelist: y= num-x if y in primelist: return True else: return Falsedef primes(num): primelist=[] for i in range(2,num + 1): for p in range(2,i): if (i % p) != 0: primelist.append(i) return primelistprint(partition(185))
1 回答
www说
TA贡献1775条经验 获得超8个赞
只有在循环结束后没有找到可以整除给定数字的数字时,您才应该确定一个数字是质数:
def primes(num):
primelist=[]
for i in range(2,num + 1):
for p in range(2,i):
if (i % p) == 0:
break
else:
primelist.append(i)
return primelist
同样,只有在循环结束后,您才应该确定一个数不能被两个素数划分:
def partition(num):
primelist = primes(num)
for x in primelist:
y= num-x
if y in primelist:
return True
return False
添加回答
举报
0/150
提交
取消