输入一个正整数n,输出n的素因数的乘式,要求这些素因数呈非递减排列
时间: 2023-05-30 10:04:54 浏览: 276
python 输入一个正整数判断它是不是素数 示例
5星 · 资源好评率100%
思路:首先从2开始试除,若能整除则将2输出并将n除以2,直到不能整除为止。然后从3开始试除,同样的方法,直到试除的数大于n为止。因为若n有素因数大于sqrt(n),则它一定有一个小于等于sqrt(n)的素因数,所以不需要试除比sqrt(n)大的数。
代码如下(Python):
```python
import math
n = int(input())
i = 2
while i <= math.sqrt(n):
if n % i == 0:
print(i, end=" ")
n //= i
else:
i += 1
if n != 1:
print(n)
```
参考资料:《算法竞赛入门经典》(P79)
阅读全文