Python程序来找到一个数字的更好的除数
假设我们有一个数字n。我们必须根据这些条件找到n的除数,哪个更好:我们有两个数字p和q,一个数字总和为更大的数字被称为比另一个更好。当数字之和相同时,数字越小越好。
所以,如果输入像n=180,那么输出将是9,因为除数是[1,2,3,4,5,6,9,10,12,15,18,20,30,36,45、60、90、180]。所以位和最大的数是[9,18,36,45,90,180],但其中9是更好的数,因为它的值较小。
示例
让我们看下面的实现来更好地理解
def solve(n): div = 1 md = 1 for i in range(2, n + 1): k = i if n % i > 0: continue s = 0 while k > 0: s += k % 10 k /= 10 if s > md: md = s div = i return div n = 180 print(solve(n))
输入
180输出结果
9