输入一个正整数n,找出并输出小于等于n的所有质数
时间: 2024-12-04 19:22:04 浏览: 21
当输入一个正整数n时,寻找小于等于n的所有质数是一个经典的计算机科学任务。质数是指大于1的自然数中,除了1和它本身以外不再有其他因数的数。以下是基本的算法步骤:
1. 首先,检查数字2是否为质数,因为它是唯一的偶数质数。
2. 然后,从3开始到n的平方根(因为我们只需要检查到√n,因为如果n有一个大于它的因子p,那么n/p必定也是因子),对每个数字i执行以下操作:
a. 检查i是否能被2到i-1之间的任何一个数整除,如果可以,则i不是质数,跳过。
b. 如果i不能被整除,说明i是质数,将其添加到结果列表中。
以下是伪代码形式:
```python
def find_primes(n):
primes = [2] # 2是唯一的小于等于n的质数
for i in range(3, int(n**0.5) + 1, 2): # 只需检查奇数
is_prime = True
for j in range(2, int(i**0.5) + 1):
if i % j == 0:
is_prime = False
break
if is_prime:
primes.append(i)
return primes
# 示例
input_n = int(input("请输入一个正整数:"))
result = find_primes(input_n)
print(f"小于等于{n}的所有质数是:{result}")
阅读全文