假设我们有两个数字 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