使用 input() 输入一个正整数 n,并判定其是否为素数,若非素数,输出其所有不超过 n 的非 1 正因子。编写程序,并书写以 60 为例的程序运行结果。
时间: 2024-12-11 15:32:36 浏览: 54
首先,我们可以编写一个函数来判断一个数是否为素数。然后,对于给定的输入n,我们会遍历从2到sqrt(n)的所有数字,看它们是否能整除n。如果找到这样的因子,我们就知道n不是素数,并记录下所有的非1正因子。
以下是Python代码示例:
```python
import math
def is_prime(num):
if num <= 1:
return False
for i in range(2, int(math.sqrt(num)) + 1):
if num % i == 0:
return False
return True
def find_factors(n):
factors = []
for i in range(2, n+1):
if n % i == 0 and i != 1: # 避免添加1作为因子
factors.append(i)
return factors
# 示例运行 n=60
n = int(input("请输入一个正整数:"))
if is_prime(n):
print(f"{n}是素数")
else:
print(f"{n}不是素数,它的非1正因子有:", find_factors(n))
```
当输入 `60` 时,运行上述程序的结果可能是:
```
请输入一个正整数:60
60不是素数,它的非1正因子有: [2, 3, 4, 5, 6, 10, 12, 15, 20, 30]
```
这里展示了60的所有非1正因子。注意,由于计算量较大,实际运行时需要考虑效率,特别是对于较大的n值。
阅读全文
相关推荐


















