任务描述
输入一个正整数n,统计从[0,n]之间的最大的10个素数之和。本题保证测试用例至少有10个满足条件的素数。
本题要求使用自定义函数完成,代码框架参考如下:
def isprime(n): #判断素数函数
......
def f(n): #找小于n的素数并求和
......
......
p=int(input())
print(f(p))
示例 1
输入: 31
输出: 3+5+7+11+13+17+19+23+29+31=158
平均代码量 21 行
def isprime(n): # 判断素数函数
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def f(n): # 找小于等于n的最大的10个素数并求和
primes = []
num = n
while len(primes) < 10:
if isprime(num):
primes.insert(0,num)
num -= 1
sum_of_primes = sum(primes)
expression = '+'.join(str(prime) for prime in primes)
return f"{expression}={sum_of_primes}"
p = int(input())
print(f(p))