मान लीजिए हमारे पास दो संख्याएं p और q हैं। हमें जांचना है कि इन दोनों संख्याओं के सभी भाजकों का योग समान है या नहीं।
उदाहरण के लिए, यदि p = 559, q = 703 है, तो आउटपुट True होगा। 559 के भाजक 1, 13, 43 हैं और 703 के भाजक 1, 19, 37 हैं। दोनों का योग 57 है।
हल करने का तरीका
- divSum() फ़ंक्शन परिभाषित करें जो n के भाजकों का योग लौटाता है
- total := 1 (1 हमेशा भाजक होता है)
- i := 2 से √n तक:
- यदि n, i से विभाज्य है, तो total में i और n/i जोड़ें
- total लौटाएं
- मुख्य विधि से divSum(p) == divSum(q) जांचें
उदाहरण कोड
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