Suppose we have two numbers p and q. We have to check whether the sum of all divisors of these tow numbers are same or not.
So, if the input is like p = 559, q = 703, then the output will be True the divisors of 559 is 1, 13, 43 and 703 is 1, 19, 37. The sum of the divisors are 57.
To solve this, we will follow these steps −
- Define a function divSum() . This will take n
- total := 1
- i := 2
- while i * i <= n, do
- if n divisible by i, then
- total := total + i + the floor of (n / i)
- i := i + 1
- if n divisible by i, then
- return total
- From the main method return true when divSum(p) is same as divSum(q), otherwise false
Let us see the following implementation to get better understanding −
Example Code
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))
Input
559, 703
Output
True