Giả sử chúng ta có hai số p và q. Chúng ta phải kiểm tra xem tổng của tất cả các ước của các số kéo này có giống nhau hay không.
Vì vậy, nếu đầu vào là p =559, q =703, thì đầu ra sẽ là Đúng, các ước của 559 là 1, 13, 43 và 703 là 1, 19, 37. Tổng các ước là 57.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- Xác định một hàm divSum (). Điều này sẽ mất n
- tổng số:=1
- i:=2
- while i * i <=n, do
- nếu n chia hết cho i thì
- tổng số:=tổng số + i + tầng của (n / i)
- i:=i + 1
- nếu n chia hết cho i thì
- tổng trả lại
- Từ phương thức main trả về true khi divSum (p) giống với divSum (q), ngược lại là false
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Mã mẫu
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))
Đầu vào
559, 703
Đầu ra
True