【发布时间】:2018-07-25 01:08:44
【问题描述】:
n = int(input("What number do you want factored out"))
def factors(n):
for i in range(2,n):
if n % i == 0:
return i
n = n/i
return factors(n)
print(factors(n))
我目前正在使用当前代码,但是我只能获得第一个因素。我可以不使用递归来重复代码并生成所有因子吗? 有没有更好的方法来解决这个问题?
【问题讨论】:
-
这段代码的副作用也很有趣,输入质数(2 除外)将导致无限循环。仔细检查您的逻辑,并通过一个简单的示例(例如 10)手动逐步完成,看看您的逻辑在哪里出错。
-
您想要仅质因数还是所有因数?你也想要负面因素吗??
-
只是乘以这个数字的因素......问题措辞不佳。 150/2 = 75, 75/3 = 25, 25/5 =5, 5/5 = 1
标签: python-3.x