ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Python 判定质数的另一种方法
[打印本页]
作者:
熊熊出没
时间:
2024-8-28 14:59
标题:
Python 判定质数的另一种方法
质数就是大于即是2且只能被它本身及1整除的数,百度上关于质数的性质和相干的公式另有许多,不过有点高深难明,尤其是对我这个数学不好的人来说。
网上python判定质数的方法大多是下面这种:
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的无谓的计算。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4