使用 Python 檢查兩個數字的約數和是否相同


假設我們有兩個數字 p 和 q。我們需要檢查這兩個數字的所有約數的和是否相同。

因此,如果輸入像 p = 559,q = 703,則輸出將為 True,因為 559 的約數是 1、13、43,而 703 的約數是 1、19、37。約數的和都是 57。

為了解決這個問題,我們將遵循以下步驟:

  • 定義一個函式 divSum()。它將接收 n 作為輸入。
  • total := 1
  • i := 2
  • 當 i * i <= n 時,執行以下操作:
    • 如果 n 可以被 i 整除,則:
      • total := total + i + n / i 的向下取整
    • i := i + 1
  • 返回 total
  • 在主方法中,當 divSum(p) 等於 divSum(q) 時返回 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

更新於: 2021年1月15日

254 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告