python - 检查素数的python代码考虑(55,25)是素数
问题描述
代码快照 python程序检查数字列表中的素数将55和25视为素数,这实际上不是素数,因为55/5 = 11并且提醒为零,所以代码中有什么问题
def check_prime(n):
for i in range(2,n,1):
if(n%i)==0:
return 1
else :
return 0
numbers=[51,52,53,54,55,13,407,508,11,17,60,12,19,25,30,]
for j in numbers:
if check_prime(j)==1:
print("the {} is not prime".format(j))
else:
print("th {} is prime".format(j))
解决方案
您的函数在单次迭代后返回,取消 for 循环的效果。当发现它不是质数时,您想返回,但您需要继续循环遍历所有数字,然后才能说质数是质数。此外,翻转返回值以更直观地理解。
def check_prime(n):
for i in range(2,n,1):
if(n%i)==0:
return 0
return 1
推荐阅读
- postgresql - Postgresql 11 如何根据时间戳重新排序数据库中的物理行
- dart - 未来构建器获取数据后如何更新其他小部件
- python - Pandas:如何用该列的平均值替换列中的零值,对于所有具有零值的列
- html - 在内容上重叠页脚行
- algorithm - 从最大化适应度函数的矩阵中选择列表
- android - Android:如何处理多个帐户入口点
- javascript - 无法根据文本中的特定字符过滤按钮
- labview - 如何辨别LabVIEW在做什么
- python - urllib3 中没有默认密码属性?
- php - 如果它们具有不同的扩展名,我如何用新的 img 上传覆盖旧的 img 上传