python中求素数的算法,超简单思路,一看就会
作者:互联网
本文章转载于慕课网手记,作者:Gorit ,本人加入了自己理解!
点击链接既可以跳转:点击
一、什么是素数?
素数就是质数,通俗点说就是只能被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
不过慕课网也是没谁了,复制也不好复制,完了之后,复制一次就出现一次链接,唉真烦;
个人理解,非常详细,有不懂的留言问我!!
#创建方法,定义形参!
def test4(s,n):
for f in range(s,n):#这个就是区间范围,在后面调用参数设置参数的话,会给与出来!
t = False #设置默认变量t ,t的值为False;不用想太多,只单单认为他是一个变量
for j in range(2,f):#在创建一个循环,因为质数2和1都不属于质数,所以从2开始,到f结束。f就是上一个for循环的结果
if f%j==0:#f就是我们要求的区间中的数,拿f除以2-f之间的所有数,余数若等于0,则会继续向下执行,如果不是,则不会执行一下的语句
t=True#若余数则是0.则从新赋值t为True
break#跳出循环
if t ==False:#素数是不可能执行 t=True这个语句,所以t = False,一直是t = False,用if判断,当t ==False时,执行输出语句#如果t=True,那么就不会执行
print(f,end=" ")#f为满足t ==False 输出,end这里是换行,并且“ ” 是保持空格
test4(100,200)#调用函数,设置参数!!
标签:False,中求,python,质数,range,素数,整除,True 来源: https://blog.csdn.net/m0_48462648/article/details/112060497