编写程序,输入两个正整数a、b(2≤a≤b≤1000000),找出 [a,b]之间的素数,由小到大输出。
时间: 2024-10-13 15:17:03 浏览: 48
编写一个程序来找出并输出给定区间 [a, b] 内的所有素数,可以遵循以下步骤:
1. 定义一个函数 `is_prime(n)` 来检查一个数 `n` 是否是素数。这通常通过遍历从2到n的平方根,看是否有能整除n的因子来判断。
```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
```
2. 主函数 `find_primes_in_range(a, b)` 接收两个参数 a 和 b,并初始化一个空列表 `primes` 用于存储找到的素数。然后从 a 开始到 b 结束,对每个数执行 `is_prime()` 函数,如果是素数就添加到 `primes` 列表中。
```python
def find_primes_in_range(a, b):
primes = []
for num in range(a, b+1):
if is_prime(num):
primes.append(num)
return primes
```
3. 最后,获取用户输入的 a 和 b,调用 `find_primes_in_range` 函数并打印结果。
```python
if __name__ == "__main__":
a = int(input("请输入起始整数 a (2 <= a <= 1000000): "))
b = int(input("请输入结束整数 b (a < b <= 1000000): "))
if a < 2 or b > 1000000 or a > b:
print("输入范围不合法,请重新输入.")
else:
prime_list = find_primes_in_range(a, b)
print(f"在区间 [{a}, {b}] 内的素数有:")
for prime in prime_list:
print(prime)
```
阅读全文