python递归函数分解质因数
时间: 2023-10-14 13:28:58 浏览: 61
以下是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中递归分解质因数的代码如下:
```
def prime_factors(n, factors):
"""
递归分解质因数
:param n: 待分解的数
:param factors: 存储因子的列表
:return: 无返回值
"""
i = 2
while i <= n:
if n % i == 0:
factors.append(i)
prime_factors(n // i, factors)
break
i += 1
# 测试代码
n = int(input("请输入一个正整数:"))
factors = []
prime_factors(n, factors)
print("{}的质因数分解为:{}".format(n, factors))
```
该程序的实现思路是从2开始,如果n能被2整除,则将2作为一个因子存储,并递归地对n/2进行质因数分解;如果不能被2整除,则从3开始遍历到n的平方根,找到一个能整除n的最小质数,并将其作为一个因子存储,然后递归地对n/i进行质因数分解,直到n等于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。