怎么用python求100以内的素数
python怎么表示素数?
python怎么表示素数?
在计算机程序设计中,判断一个数是否为素数是常用算法之一,与素数相关的应用也非常多。在这一部分我们来集中讨论一下如何判断一个数为素数。
素数,又名质数,是指只有1和它本身两个因数的自然数。
如果要判断一个数n是否为素数,通常会采用穷尽法,即将n除以2到n-1中的每一个数。如果能被这个范围内的某一个数除尽,可知n不是素数,若是都除不尽,则n为素数。
nint(input(请输入n(n1)))
t0
for i in range(2,n):
if n%i0:
tt 1
if(t0):
print(n,是素数)
else:
print(n, 不是素数)
程序中的t用来统计n中除1和自身之外的因子个数。若循环执行完毕,t的值仍然为0,那么就可以知道n无其它因子,所以n为素数。
实际上当n除以2到n-1中某一个数能除尽(即余数为0)时,就可以得出结论:n肯定不是一个素数。这样也就没有必要继续再除下去了,基于这个思路,可以将程序改进如下:
nint(input(请输入n(n1)))
for i in range(2,n):
if n%i0:
break
if(in-1): #在循环体里,i最后取的值为n-1
print(n,是素数)
else:
print(n, 不是素数) 实际上当n除以2到n-1中某一个数能除尽(即余数为0)时,就可以得出结论:n肯定不是一个素数。这样也就没有必要继续再除下去了,基于这个思路,可以将程序改进如下:
nint(input(请输入n(n1)))
for i in range(2,n):
if n%i0:
break
if(in-1): #在循环体里,i最后取的值为n-1
print(n,是素数)
else:
print(n, 不是素数)
程序中的break语句是改变程序流程的语句,它可以结束这条循环语句的执行,去执行紧跟在循环语句后面的那条语句。因为是从循环中break退出的,所以i的值必然是不等于循环变量i取的最后一个值n-1的。但是这种情况,对于当n为2时程序会报错,因此可以进一步改进该程序:
n int(input(请输入n(n1)))
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是素数的这种情况了。
判断一个正整数是否为素数python?
判断素数的方法:一个正整数a大于n的平方小于(n 1)的平方,那么,就用小于等于n的质数去除a,如果都不能整除,那么a就是质数,否则为合数。例如1469大于38的平方小于39的平方,那么就用小于38的质数去除1469,可知,1469能被13整除,故,1469是合数。