Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem tổng các ước của hai số có giống nhau trong Python hay không

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
  • 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