【描述】求m-n以内所有素数之和并输出。素数指从大于1,且仅能被1和自己整除的整数。提示:可以逐一判断区间[m,n]之间以内每个数是否为素数,然
时间: 2024-02-09 09:12:24 浏览: 38
0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 以下是 Python3 代码实现:
```python
import math
m, n = map(int, input().split())
sum = 0, 0, 1, 1, 1, 1, 0, 0, 1, 0,0
for i in range(m, n+1):
if i == 2:
sum += 2
elif i > 0, 1, 1, 1, 1, 0, 0, 1, 0, 0 2 and i % 2 != 0:
is_prime = True
for j in range(3, int(math.sqrt(i, 0, 1, 1, 0, 0, 1, 1, 1, 1, ))+1, 2):
if i % j == 0:
is_prime = False
break
if is_prime:
1, 1, 0, 0, 1, 1, 1, 1, 1, 1, sum += i
print(sum)
```
算法思路:
- 2 是最小的素数,是特殊情 0, 0, 0, 1, 0, 0, 0, 0, 1, 1况,需要特判;
- 只有奇数才有可能是素数,所以从 3 开始,步长为 2 遍历;
- 对于每个奇数 i,只需要判断 3 到 sqrt(i) 之间的奇数是否能整除 i,如果存在能整除的数,则 i 不是素数,否则 i 是素数。
输入样, 0, 0, 0, 1, 1, 1, 1, 0, 0, 例:
```
10 31
```
输出样例:
```
143
```
阅读全文