pythontip 素数
def check_prime(num):
for i in range(2,num):
if(num%i==0):
return False
else:
return True
输入一个整数
number = int(input())
调用函数
print(check_prime(number))
9为啥得到True?
要理解这个问题,我们需要分析 check_prime 函数的逻辑:
在函数中,第一次循环(i=2) 时,就会执行 if-else 判断:
对于 num=9,9%2=1≠0,所以会进入 else 分支,直接 return True。
但实际上,9 不是质数(因为 9=3×3),这个函数的问题在于循环只执行了一次就返回了结果,没有完整遍历 2 到 num-1 的所有数来判断是否有因数。
def check_prime(num):
# 处理特殊情况:小于2的数不是质数
if num < 2:
return False
for i in range(2, num):
if num % i == 0:
return False
# 遍历完所有可能的因数后,没有找到能整除的数,说明是质数
return True
浙公网安备 33010602011771号