输入: 31 输出: 3+5+7+11+13+17+19+23+29+31=158
时间: 2023-07-02 12:20:58 浏览: 76
以下是 Python 代码实现:
```python
def is_prime(n):
"""
判断一个数是否为素数
"""
if n <= 1:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def prime_sum(n):
"""
计算小于等于n的素数之和,并返回素数列表和素数之和
"""
primes = []
sum = 0
for i in range(2, n + 1):
if is_prime(i):
primes.append(i)
sum += i
return primes, sum
n = int(input("请输入一个正整数n:"))
primes, sum = prime_sum(n)
print(f"{'+'.join(map(str, primes))}={sum}")
```
这个函数首先定义了一个判断一个数是否为素数的 `is_prime` 函数。然后在 `prime_sum` 函数中遍历从2到n的所有整数,如果是素数就加入到一个列表中,并计算素数之和。最后返回这个素数列表和素数之和。在主程序中,我们先调用 `prime_sum` 函数计算素数列表和素数之和,然后用 `'+'.join(map(str, primes))` 将素数列表转化为字符串,再拼接成类似 "3+5+7+11+..." 的形式输出。