python题目,一个 合数可以表示成若干个质数相乘的形式,比如21=3x7,18=2x3x3, 这些质数被称为它的质因子。 给定一个合数n(n<2^31-1),求出它的所有质因子。
时间: 2024-05-09 13:21:14 浏览: 59
可以使用试除法,从最小的质数2开始,不断尝试将n除以2,直到不能再整除为止。然后再尝试将n除以3,5,7,11等质数,直到n变为1为止。每次能够整除的数,即为n的一个质因子。
代码如下:
```python
def prime_factors(n):
factors = []
i = 2
while i * i <= n:
while n % i == 0:
factors.append(i)
n //= i
i += 1
if n > 1:
factors.append(n)
return factors
n = int(input("请输入一个合数:"))
factors = prime_factors(n)
print(f"{n}的质因子为{factors}")
```
阅读全文