首页后端开发Pythonpython怎么表示素数

python怎么表示素数

时间2023-06-04 07:33:01发布访客分类Python浏览1052
导读:python怎么表示素数?在计算机程序设计中,判断一个数是否为素数是常用算法之一,与素数相关的应用也非常多。在这一部分我们来集中讨论一下如何判断一个数为素数。素数,又名质数,是指只有1和它本身两个因数的自然数。如果要判断一个数n是否为素数,...

python怎么表示素数?

在计算机程序设计中,判断一个数是否为素数是常用算法之一,与素数相关的应用也非常多。在这一部分我们来集中讨论一下如何判断一个数为素数。

素数,又名质数,是指只有1和它本身两个因数的自然数。

如果要判断一个数n是否为素数,通常会采用穷尽法,即将n除以2到n-1中的每一个数。如果能被这个范围内的某一个数除尽,可知n不是素数,若是都除不尽,则n为素数。

n=int(input("请输入n(n> 1)"))

t=0

for i in range(2,n):

if n%i==0:

t=t+1

if(t==0):

print(n,"是素数")

else:

print(n, "不是素数")

程序中的t用来统计n中除1和自身之外的因子个数。若循环执行完毕,t的值仍然为0,那么就可以知道n无其它因子,所以n为素数。

实际上当n除以2到n-1中某一个数能除尽(即余数为0)时,就可以得出结论:n肯定不是一个素数。这样也就没有必要继续再除下去了,基于这个思路,可以将程序改进如下:

n=int(input("请输入n(n> 1)"))

for i in range(2,n):

if n%i==0:

break

if(i==n-1): #在循环体里,i最后取的值为n-1

print(n,"是素数")

else:

print(n, "不是素数") 实际上当n除以2到n-1中某一个数能除尽(即余数为0)时,就可以得出结论:n肯定不是一个素数。这样也就没有必要继续再除下去了,基于这个思路,可以将程序改进如下:

n=int(input("请输入n(n> 1)"))

for i in range(2,n):

if n%i==0:

break

if(i==n-1): #在循环体里,i最后取的值为n-1

print(n,"是素数")

else:

print(n, "不是素数")

程序中的break语句是改变程序流程的语句,它可以结束这条循环语句的执行,去执行紧跟在循环语句后面的那条语句。因为是从循环中break退出的,所以i的值必然是不等于循环变量i取的最后一个值n-1的。但是这种情况,对于当n为2时程序会报错,因此可以进一步改进该程序:

n = int(input("请输入n(n> 1)"))

for i in range(2, n):

if n % i == 0:

print(n, "不是素数")

break

else:

print(n, "是素数")

注意这里的else并不是与循环体里的if语句相匹配的,它是与for循环语句相匹配的,表示当for循环正常执行结束而不是用break强行退出时,去执行else子句的语句;若是在循环里执行break语句强行退出了,则不执行这个else子句。

此时再试一下,发现它就可以判断2是素数的这种情况了。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: python怎么表示素数
本文地址: https://pptw.com/jishu/60788.html
python一共有多少语句 Win7python是电脑自带的吗

游客 回复需填写必要信息