मान लीजिए हमारे पास a और b नामक दो संख्याएं हैं। हमें यह ढूंढना है कि कितने पॉजिटिव इंटीजर्स हैं, जो a और b दोनों के डिवाइजर्स हैं।
तो, यदि इनपुट a = 288 b = 240 है, तो आउटपुट 10 होगा क्योंकि कॉमन डिवाइजर्स [1,2,3,4,6,8,12,16,24,48] हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
- res := 0
- i के लिए 1 से gcd(a, b) + 1 तक की रेंज में, करें
- यदि (a mod i) 0 है और (b mod i) 0 है, तो
- res := res + 1
- यदि (a mod i) 0 है और (b mod i) 0 है, तो
- res लौटाएं
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
from math import gcd
def solve(a, b):
res = 0
for i in range(1, gcd(a,b)+1):
if (a % i) == 0 and (b % i) == 0:
res += 1
return res
a, b = 288, 240
print(solve(a, b))
इनपुट
288, 240
आउटपुट
10