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
