函数isPrime()接收一个大于等于2的正整数num,判断其是否为素数,素数时返回True,否则返回False
函数main()接收一个大于等于2的正整数n,要求返回不超过n的最大素数,可以调用程序中定义的函数isPrime()
isPrime()函数我写出来了,main()函数也写了,但是调用的时候总是出错,结果也不对,不知道为什么
例如n=200时返回199,n=100时返回97,n=2时返回2
def isPrime(n):
if n==2: return True
for i in range(2,int(n**0.5)+1):
if n%i == 0: return False
return True
def main(n):
for i in range(n,1,-1):
if isPrime(i):return i
print(main(200))
print(main(100))
print(main(2))
你把代码发出来啊
下面是我自己写的代码,有用的话望采纳
primenumbers=[]
def main(n):
for i in range(2,n+1):
j=2
for j in range(2,i):
if i%j==0:
break
else:
primenumbers.append(i)
return primenumbers[-1]
tflist=[]
def isPrime(n):
for i in range(2,n):
if n%i==0:
tflist.append("F")
else:
tflist.append("T")
if "F" in tflist:
return False
else:
return True
print(main(200))
print(main(100))
print(main(2))