① python 找最大质数问题
"""题主的问题主要有三个:
1.max_prime中的i错写成了x,这是导致错误的原因
2.s=[]应放在函数max_prime中,这样才符合程序设计原则
3.如果要求的是包含x在内的最大质数,max_prime函数中range应
写成range(2,x+1),此时i的取值范围才是2到x
此外,寻找最大质数时max_prime中遍历时应该从后往前遍历,此时遇到
的第一个质数就是所求最大质数,而不必从前遍历做无用功。
修改代码如下:
"""
defprime(x):
foriinrange(2,x//2+1):
ifx%i==0:
returnFalse
returnTrue
defmax_prime(x):
foriinrange(x,1,-1):#x+1以包含x本身
ifprime(i):
returni
print(max_prime(1000))
② 如何用python计算小于100的最大素数
#-*-coding:utf-8-*-
importmathasma#引入math,要用到开平方函春毕数sqrt()
defprime(n):#判断整数n是不是素数
ifn==1:
return0
t=int(ma.sqrt(n)+1)
foriinrange(2,t):
ifn%i==0:
樱枝脊森敏return0
return1
foriinrange(1,101):
if(prime(i)):
print(i,end='')#输出不换行
③ python输出200以内的最大素数
# 输出200以内的最大素数
for n in range(199,100,-2):
for i in range(3,int(n**(1/2))+1,2):
if n % i == 0:
break
else:
print(f'200以内最大素数是{n}')
break
程序缩进如图所示
④ python语言 超级素数
#-*-coding:utf8-*-
#py3
importmath
defPrime(n):#判断n是不是素数
ifn==1:
returnFalse
ifn==2:
returnTrue
t=int(math.sqrt(n)+1)
foriinrange(2,t):
ifn%i==0:
returnFalse
returnTrue
if__name__=='__main__':
s=0#素数和
k=0#个数
foriinrange(100,10000):
t=i
whilet>1andPrime(t):#t若是素数且大于1
t=int(t/10)#继续去掉低一位.直至t=0或t不是素数
ift==0:#该数是所求
print(i)#测试使用,仅供观察,可以去掉
s+=i#求和
k+=1#计数器加1
print(s,k)#输出结果
结果: