# -*- coding: utf-8 -*-
"""
Created on Mon Oct 21 21:16:27 2019
@author: asus
"""
"""
递归调用实现整数的因数分解
"""
##from random import randint
#总的来说,else是for、while、try语句中‘没毛病’时才执行,
#而在if..else语句中是if语句判断为假(有毛病)才执行else,这一点要区分开来
def factors(num,fac = []):
#每次都从2开始查找因数
for i in range(2,int(num ** 0.5) + 1):
#找到一个因数
if num % i == 0:
fac.append(i)
print(num)
#对商继续分解,重复这个过程
factors(num // i,fac)
#注意,这个break很重要
break
else:
#不可分解了,自身也是这个因数
fac.append(num)
facs = []
n = 100
factors(n,facs)
result = '*'.join(map(str,facs))
if n == eval(result):
print(n,"= " + result)
python递归调用实现整数的因数分解
最新推荐文章于 2021-09-30 10:58:56 发布