输入两个正整数m和n,统计并输出m~n之间素数的个数。输入格式:在一行中输入两个整数m和n,且满足m小于n,整数之间用逗号“,”隔开。输出格式:在一行中输出一个整数,即m~n之间素数的个数。输入2,20输出8。输入80,890输出143。用idle
时间: 2024-10-22 15:22:20 浏览: 36
统计给定整数M和N区间内素数的个数并对它们求和-C语言代码
为了编写一个Python程序来解决这个问题,你可以使用埃拉托斯特尼筛法(Sieve of Eratosthenes)。这个算法可以有效地找出给定范围内的所有素数。下面是一个简单的实现:
```python
def count_primes(m, n):
primes = [True] * (n + 1)
p = 2
while p * p <= n:
if primes[p]:
for i in range(p * p, n + 1, p):
primes[i] = False
p += 1
# 统计并返回m到n之间的素数个数
prime_count = sum(primes[m:i] for i in range(m, n + 1) if i > 1)
return prime_count
# 测试示例
m, n = map(int, input().split(','))
print(count_primes(m, n))
```
在这个程序中,我们首先创建一个布尔列表`primes`,其中索引表示数字,值表示是否为素数。然后从2开始遍历,将所有2的倍数标记为非素数,接着找下一个未标记的数(即下一个质数),继续进行同样的过程,直到找到大于sqrt(n)的质数。最后,我们计算并返回给定范围内(包括m和n)的素数个数。
如果你想要在IDLE(集成开发环境)中运行此程序,需要复制粘贴上述代码,并在交互模式下分别传入`m`和`n`作为测试。
阅读全文