寄安 发表于 2021-8-18 17:55:39

判断素数

int(math.sqrt(number) + 1)这个有大神可以解释一下吗

青出于蓝 发表于 2021-8-18 17:58:35

这是一个求质数的基本算法
判断一个数是不是质数,仅需要判断比这个数的平方根小的质数是不是他的因数
math.sqrt是求算数平方根的。

欢迎追问~

青出于蓝 发表于 2021-8-18 18:00:48

问神魔判断x是不是质数只需要判断小于等于根号x的数呢?
因为每一个数都可以拆分为a*b
a和b有一个大,有一个小,也有可能a=b
如果a=b,则a=b=根号x
所以判断x是不是质数只需要判断小于等于根号x的数

大马强 发表于 2021-8-18 18:00:56

int(math.sqrt(number) + 1) 先求根加一,然后取整

青出于蓝 发表于 2021-8-18 18:01:27

仔细读一读,思考一下。
表达不好,说的可能不太清楚
欢迎追问~

寄安 发表于 2021-8-19 11:16:58

青出于蓝 发表于 2021-8-18 18:01
仔细读一读,思考一下。
表达不好,说的可能不太清楚
欢迎追问~

最后的return false 是为了什么,经过一系列的判断后,不是说明这个数是素数该返回True吗???????
for循环我明白了,只是数学逻辑没搞清楚,哈哈哈哈
页: [1]
查看完整版本: 判断素数