python递归调用实现整数的因数分解

mac2025-01-30  22

# -*- 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)
最新回复(0)