gpt4 book ai didi

python:检查数字是否为质数,指定范围

转载 作者:太空宇宙 更新时间:2023-11-04 01:19:24 24 4
gpt4 key购买 nike

我写的这段代码有问题,它用来检查数字是否为质数。

import sys
import math

def is_prime(num):
for j in range(2,(int(math.sqrt(num)+1))):
if (num % j) == 0:
return False
else:
return True

for a in range(1,10):
if is_prime(a):
print a

我得到的是:5、7、9

我不明白为什么要排除 3?我回到代码的第一部分并尝试了 is_prime(3),但它既不返回 True 也不返回 False。这是否意味着 3 超出了我正在检查的除数​​范围?我应该如何更正代码以使 3 包含在我的素数列表中?

编辑:再次您好,感谢您到目前为止的回答,所以我尝试使用 int(round()) 来解决截断问题。我也试过将 else block 放在循环之外,但它似乎不起作用。任何人都可以解释为什么这是不够的,并建议我应该如何纠正它以便它起作用吗?提前致谢! :)

import sys
import math

def is_prime(num):
for j in range(2,int(round(math.sqrt(num)+1)):
if (num % j) == 0:
return False
return True

最佳答案

一旦发现该数字不能被 any j 整除,您的函数就会返回 True。如果数字不能被 all j 整除,它应该只返回 True

作为修复此错误的副作用,您还将修复函数有时返回 None 的错误(例如,当 num 3).

关于python:检查数字是否为质数,指定范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22279735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com