检查Python中两个数字的除数之和是否相同

假设我们有两个数字 p 和 q。我们必须检查这些两个数的所有除数之和是否相同。

所以,如果输入像 p = 559, q = 703,那么输出将是 True 559 的因数是 1, 13, 43 和 703 是 1, 19, 37。除数之和是 57。

为了解决这个问题,我们将按照以下步骤操作 -

  • 定义一个函数divSum()。这将需要 n

  • 总计:= 1

  • 我:= 2

  • 而 i * i <= n,做

    • 总计 := 总计 + i + (n / i) 的下限

    • 如果 n 可被 i 整除,则

    • 我 := 我 + 1

    • 总回报

    • 当divSum(p)与 相同时divSum(q),main 方法返回 true ,否则返回 false

    让我们看看以下实现以获得更好的理解 -

    示例代码

    from math import floor
     
    def divSum(n):
       total = 1
       i = 2
       while i * i <= n:
          if n % i == 0:
             total += i + floor(n / i)
          i += 1
     
       return total
       
    def solve(p, q):
       return divSum(p) == divSum(q)
    
    p = 559
    q = 703
    print(solve(p, q))

    输入

    559, 703
    输出结果
    True

    猜你喜欢