मान लीजिए कि हमारे पास चार संख्याएँ हैं a, b, c और d और हमें ऐसे जोड़े (x, y) की संख्या ज्ञात करनी है जो समीकरण का अनुसरण करते हैं:x^2 + y^2 =(x*a) + ( y*b) जहां x रेंज में [1, c] और y रेंज में [1, d]
इसलिए, यदि इनपुट a =2 b =3 c =2 d =4 जैसा है, तो आउटपुट 1 होगा क्योंकि एक जोड़ी (1, 1) है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- उत्तर:=0
- x श्रेणी 1 से c के लिए, करें
- l :=x*(x-a)
- det2 :=b*b - 4*l
- यदि det2 0 के समान है और b सम है और 1 <=मंजिल (b/2) <=d, तो
- उत्तर:=उत्तर + 1
- अगले पुनरावृत्ति के लिए जाएं
- अगर det2> 0, तो
- det :=det2 के वर्गमूल का पूर्णांक भाग
- यदि det^2 det2 के समान है और (b+det) सम है, तो
- यदि 1 <=(b+det)/2 <=d का तल, तो
- उत्तर:=उत्तर + 1
- यदि 1 <=मंजिल (बी-डेट)/2 <=डी, तो
- उत्तर:=उत्तर + 1
- यदि 1 <=(b+det)/2 <=d का तल, तो
- वापसी उत्तर
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(a, b, c, d): ans = 0 for x in range(1,c+1): l = x*(x-a) det2 = b*b - 4*l if det2 == 0 and b%2 == 0 and 1 <= b//2 <= d: ans += 1 continue if det2 > 0: det = int(round(det2**0.5)) if det*det == det2 and (b+det) % 2 == 0: if 1 <= (b+det)//2 <= d: ans += 1 if 1 <= (b-det)//2 <= d: ans += 1 return ans a = 2 b = 3 c = 2 d = 4 print(solve(a, b, c, d))
इनपुट
2, 3, 2, 4
आउटपुट
1