Python 判断质数代码优化:避免循环内错误输出
这段代码的问题是在循环中,每次判断都会输出'yes'。应该将 print('yes') 移出循环,放在循环结束后输出。
import math
a = int(input())
if a == 1:
print('no')
else:
b = int(math.sqrt(a) + 1)
for i in range(2,b):
if a % i == 0:
print('no')
break
else:
print('yes')
优化后的代码:
import math
a = int(input())
if a == 1:
print('no')
else:
b = int(math.sqrt(a) + 1)
for i in range(2,b):
if a % i == 0:
print('no')
break
else:
print('yes')
解释:
在原始代码中,for 循环内的 else 语句会导致每次循环迭代都输出 'yes'。这并非我们想要的结果。
为了解决这个问题,我们将 print('yes') 语句移出了 for 循环,并将其放置在 else 语句块中,该语句块只在循环正常结束(没有 break 语句执行)的情况下才会执行。这意味着,只有当 a 成功通过所有质数测试时,才会输出 'yes'。
原文地址: https://www.cveoy.top/t/topic/pecu 著作权归作者所有。请勿转载和采集!