Python 判断质数的另一种方法

Python学习 2024-08-28 16:39:00 阅读 91

质数就是大于等于2且只能被它本身及1整除的数,百度上关于质数的性质和相关的公式还有很多,不过有点高深难懂,尤其是对我这个数学不好的人来说。

网上python判断质数的方法大多是下面这种:

<code>from math import sqrt

def is_prime(n):

if n == 1:

print("此数为不质数")

return False

for i in range(2, int(sqrt(n))+1): #或者 for i in range(2, n//2+1):

if n % i == 0:

print("此数不为质数")

return False

print("此数为质数")

return True

但是我在做这题的时候没有看网上的代码,于是开辟了另一个方法。

有一组数是很神奇的:[2,3,5,7]。这四个数加上一些运算符号可以生出任意的数。

比如8=2×2×2, 6=2×3, 14=2×7.....

所以,只要被求的数不能被这组数中的每一个数整除,此数就为质数。基本代码如下:

def is_prime(n):

ls = [2, 3, 5, 7]

for i in ls:

if n == i:

print("此数为质数")

return True

if not n % i:

print("此数不为质数")

return False

print("此数为质数")

return True

#return的作用:判断结束后即刻退出函数,避免重复判断

#学习中遇到问题没人解答?小编创建了一个Python学习交流群:857662006

for i in range(10):

n = int(input("请输入一个整数:"))

is_prime(n)

仔细想一想,其实这两个方法是一样的,第一块代码的range范围是包含[2,3,5,7]的,甚至可以再精细一点,比如当n=8的时候,第一块代码的范围区间是[2,3],这样就避免了后面5和7的无谓的计算。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。