使用 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
- 如果 n 可以被 i 整除,則:
- 返回 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
廣告