ধরুন আমাদের চারটি সংখ্যা আছে 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
- 1 থেকে c রেঞ্জের x এর জন্য, করুন
- l :=x*(x-a)
- det2 :=b*b - 4*l
- যদি det2 0 এর সমান হয় এবং b জোড় হয় এবং 1 <=(b/2) <=d এর ফ্লোর হয়, তাহলে
- উত্তর :=উত্তর + ১
- পরবর্তী পুনরাবৃত্তির জন্য যান
- যদি det2> 0 হয়, তাহলে
- det :=det2 এর বর্গমূলের পূর্ণসংখ্যা অংশ
- যদি det^2 det2 এর সমান এবং (b+det) জোড় হয়, তাহলে
- যদি 1 <=(b+det)/2 <=d হয়, তাহলে
- উত্তর :=উত্তর + ১
- যদি 1 <=(b-det)/2 <=d হয়, তাহলে
- উত্তর :=উত্তর + ১
- যদি 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