python递归函数分解质因数
时间: 2023-10-14 16:28:58 浏览: 163
以下是Python递归函数分解质因数的代码示例:
```python
def factorize(num, factor):
"""
分解质因数的递归函数
:param num: 待分解的数
:param factor: 当前的因子
"""
# 如果num已经被分解为1,说明已经分解完毕,直接返回
if num == 1:
return
# 如果num可以被当前因子整除,继续分解
if num % factor == 0:
print(factor, end=' ')
factorize(num // factor, factor)
# 如果num不能被当前因子整除,尝试下一个因子
else:
factorize(num, factor + 1)
# 测试
num = 60
factorize(num, 2) # 2 2 3 5
```
在这个函数中,我们传入两个参数:待分解的数num和当前的因子factor。如果num可以被factor整除,则说明factor是num的一个质因子,我们将它输出,并继续递归分解num // factor。否则,我们尝试下一个因子factor + 1。如果num已经被分解为1,则说明我们已经找到了所有质因子,直接返回即可。
相关问题
python使用递归函数完成分解质因数
以下是Python代码,使用递归函数来分解质因数:
```python
def prime_factors(n):
"""
递归函数分解质因数
"""
factors = []
i = 2
while i <= n:
if n % i == 0:
factors.append(i)
factors.extend(prime_factors(n // i))
break
i += 1
return factors
```
调用该函数,输入一个正整数,即可得到该数的所有质因数:
```python
n = 84
print(prime_factors(n)) # 输出 [2, 2, 3, 7]
```
解释:84 = 2 x 2 x 3 x 7,因此它的质因数分别是2、2、3、7。
python使用递归函数写分解质因数
以下是使用递归函数写分解质因数的Python代码:
```python
def factorization(num, factor_list=[]):
"""
递归函数,分解质因数
:param num: 待分解的数
:param factor_list: 分解出的质因数列表
:return: 分解出的质因数列表
"""
if num == 1:
return factor_list
for i in range(2, num+1):
if num % i == 0:
factor_list.append(i)
return factorization(num // i, factor_list)
return factor_list
```
使用方法:
```python
num = 100
factors = factorization(num)
print(factors)
```
输出结果:
```
[2, 2, 5, 5]
```
说明100的质因数分解为2×2×5×5。
阅读全文