7-6 求n以内最大的k个素数以及它们的和 (15 分)
时间: 2023-06-05 18:48:05 浏览: 127
题目描述:
给定一个正整数n和一个正整数k,求n以内最大的k个素数以及它们的和。
解题思路:
首先,我们需要判断一个数是否为素数。一个数n是否为素数,只需要判断n是否能被2到sqrt(n)之间的任意一个数整除即可。如果能被整除,则n不是素数;否则n是素数。
接下来,我们可以从n开始往下枚举每一个数,判断其是否为素数。如果是素数,则将其加入到一个数组中,并记录已经找到的素数个数。当找到k个素数时,停止枚举。最后,将数组中的k个素数相加即可得到它们的和。
代码实现:
```python
import math
def is_prime(n):
if n < 2:
return False
for i in range(2, int(math.sqrt(n))+1):
if n % i == :
return False
return True
n = int(input())
k = int(input())
primes = []
count =
for i in range(n, 1, -1):
if is_prime(i):
primes.append(i)
count += 1
if count == k:
break
print(primes)
print(sum(primes))
```
参考资料:
[1] https://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_013.html
[2] https://www.runoob.com/python/python-exercise-example7.html