python 实现(2)正整数的质因子分解。要求编写自定义函数实现该功能。例如,给定10,打印出结果:[[2,5],[1,1]],表示10=21*51;给定200,打印出结果:[[2,5],[3,2]],表示200=23*52.
时间: 2023-05-12 21:05:43 浏览: 51
以下是 Python 实现正整数的质因子分解的代码:
```python
def prime_factorization(n):
factors = []
i = 2
while i * i <= n:
if n % i:
i += 1
else:
n //= i
if len(factors) == 0 or factors[-1][0] != i:
factors.append([i, 1])
else:
factors[-1][1] += 1
if n > 1:
if len(factors) == 0 or factors[-1][0] != n:
factors.append([n, 1])
else:
factors[-1][1] += 1
return factors
print(prime_factorization(10)) # [[2, 1], [5, 1]]
print(prime_factorization(200)) # [[2, 3], [5, 2]]
```
该函数接受一个正整数 `n` 作为参数,返回一个列表,其中每个元素都是一个长度为 2 的列表,表示 `n` 的一个质因子及其指数。例如,`[[2, 1], [5, 1]]` 表示 `10=2^1*5^1`。
注意,该函数只能处理正整数,如果输入的是负数或零,会导致死循环。
阅读全文