【发布时间】:2021-03-20 16:16:06
【问题描述】:
首先,我想做的是不是最大的常见除数。我试图找到最大的除数。例如,对于数字 12,我的最大除数将是 6。对于数字 15,它将是 5,对于 17,它将是 1。
我所做的就是迭代:
def greatest_divisor(n):
for d in range(n-1,0,-1):
if n % d == 0:
return d
break
greatest_divisor(12)
>6
运行正常。 我需要的是这个函数的递归形式。如果您能提出一些可行的方法,我将不胜感激!
【问题讨论】:
-
12 本身不是最大除数吗?
-
我看不出递归在这里有什么帮助。除数的最大除数总是小于所述除数。您还可以将迭代的起点更改为
floor(n/2),因为n永远不能被大于n/2的任何值除。
标签: python recursion iteration