专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

python怎么表示素数_python

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/9 2:36:30       共计:3563 浏览

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是素数的这种情况了。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:魔兽世界怀旧服工作室泛滥_服务器 | ·下一条:腾达首选dns和备用dns填什么_服务器

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有