Python程序查找数字的更好除数

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是更好的数字,因为它的值更小。

要解决这个问题,我们将按照以下步骤进行−

  • div := 1, md := 1
  • for i in range 2 to n, do
    • k := i
    • 如果n mod i > 0,则
      • 继续下一次迭代
    • s := 0
    • while k > 0, do
      • s := s + k mod 10
      • k := k / 10
    • if s > md, then
      • md := s
      • div := i
  • return div

例子

让我们来看一下以下实现,以更好地理解

def solve(n):
   div = 1
   md = 1
   for i in range(2, n + 1):
      k = i
      如果 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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程