Python 不大于n的最大素数?输入一个正整数n>1 十一点就要提交了,为什么不对啊!
可以使用下面的算法计算不大于n的最大素数:
def largest_prime_below(n):
if n <= 2:
return None
primes = [2]
i = 3
while i <= n:
is_prime = True
for p in primes:
if i % p == 0:
is_prime = False
break
if is_prime:
primes.append(i)
i += 2
return primes[-1]
这个算法的思路是:1. 先定义一个素数列表primes,初始化为[2]2. 从i=3开始遍历,因为2是唯一的偶素数3. 对每个i,判断它是否是素数:- 取primes中的每个素数p,判断i是否能被p整除
也许 n 本身就是素数呢?