生成一个功能为对任一整数N(N≠0),它可以分解成1或(-1)和一些质数因子相乘的形式
时间: 2024-02-18 20:59:13 浏览: 99
以下是一个实现分解质因数的 Python 代码:
```python
def prime_factors(n):
"""
分解质因数
"""
factors = []
# 处理负数
if n < 0:
n = abs(n)
factors.append(-1)
# 处理2
while n % 2 == 0:
factors.append(2)
n //= 2
# 处理大于2的奇数
i = 3
while i <= n**0.5:
if n % i == 0:
factors.append(i)
n //= i
else:
i += 2
if n > 2:
factors.append(n)
return factors
```
这个函数接受一个整数 `n` 作为参数,返回分解质因数后的结果。如果 `n` 是正整数,返回的列表中包含 `n` 的所有质因数;如果 `n` 是负整数,返回的列表中包含 `-1` 和 `n` 的所有质因数。
例如,如果调用 `prime_factors(60)`,返回的结果是 `[2, 2, 3, 5]`,因为 $60=2^2 \times 3 \times 5$。如果调用 `prime_factors(-60)`,返回的结果是 `[-1, 2, 2, 3, 5]`,因为 $-60=(-1) \times 2^2 \times 3 \times 5$。
阅读全文