栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

编程新手看过来,如何求素数 (Python 实现)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

编程新手看过来,如何求素数 (Python 实现)

一、什么是素数?

素数就是质数,通俗点说就是只能被1和其本身整数的数就是素数(1除外)

举个例子:
2,3,4,5,6当中,根据上面的定义,2只能被1整数(因为任何数和1整除都都等于它本身)

二、素数计算思路

2/1=2
2/2=1
所以 2 是素数

3/1 =3
3/2 =1.5
3/3 = 1
所以 3 也是素数

我们再看 4
4/2 = 2
因为 4 不仅能被 1 和 其本身整除,还可以被2整除,所以4不是素数,所以后面都可以不用计算了

后面以此类推

三、上手编程

这里给大家提供两种思路,仅供参考

第一种编程思路:我们给定一个数字 x ,然后我们利用 2 ~ (x -1) 之间的每一个数字与 x 进行整除,如果出现可以被整除的情况,则这个数字就不是素数,然后循环就可以跳出去

# 求 a~b之间的素数
def su(a,b):
    for i in range(a,b):
 n = False #默认不是素数,如果是素数,跳出循环
 for j in range(2,i):
     if i%j == 0:
  n = True
  break
  
 if n == False:
     print(i,end=" ")

su(100,200)
# ans 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 
# 179 181 191 193 197 199 

第二种编程思路,提高编程效率,如果我们要求的素数的区间比较大,比如 1w ~ 2w,然后光双层循环就会浪费很多的时间,所以,我们可以把判断条件改一下,我们不用把 2 ~ (x-1)之间的每一个数字进行整除,只需要对其 x^(0.5) 进行循环同样可以得到结果

# 求 a~b之间的素数
def su(a,b):
    for i in range(a,b):
 n = False #默认不是素数,如果是素数,跳出循环
 for j in range(2,int(i**0.5)):
     if i%j == 0:
  n = True
  break

 if n == False:
     print(i,end=" ")

su(100,200)

今天的到这里就结束了!!!

你学会了嘛

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号