ধরুন আমাদের একটি সংখ্যা x এবং আরেকটি সংখ্যা n। কিছু অনন্য সংখ্যার nম ঘাতের যোগফল হিসাবে আমরা x পেতে পারি এমন কয়েকটি উপায় আমাদের খুঁজে বের করতে হবে।
সুতরাং, যদি ইনপুটটি x =100 n =2 এর মত হয়, তাহলে আউটপুট 3 হবে কারণ সম্ভাব্য সমাধানগুলি হল 6^2 + 8^2, 10^2 এবং 1^2 + 3^2 + 4^2 + 5^ 2 + 7^2।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- উত্তর :=0
- সল্ভ() নামক একটি পদ্ধতির সংজ্ঞা দিন এতে চারটি প্যারামিটার লাগবে x, n, cn এবং cs, প্রাথমিক
- cs =0, cn =1 এর জন্য মান
- p :=cn^n
- যখন p + cs
- উত্তর :=উত্তর + সমাধান(x, n, cn + 1, p + cs)
- cn :=cn + 1
- p :=cn^n
- উত্তর :=উত্তর + ১
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
from math import pow def solve(x, n, cn = 1, cs = 0): ans = 0 p = pow(cn, n) while p + cs < x: ans += solve(x, n, cn + 1, p + cs) cn = cn + 1 p = pow(cn, n) if p + cs == x: ans = ans + 1 return ans x = 100 n = 2 print(solve(x, n))
ইনপুট
100, 2
আউটপুট
3