কম্পিউটার টিউটোরিয়াল

পাইথনে অনন্য সংখ্যাগুলোর nth ঘাতের যোগফল হিসেবে একটি সংখ্যা বের করার পদ্ধতির সংখ্যা নির্ণয়

ধরুন আমাদের একটি সংখ্যা x এবং আরেকটি সংখ্যা n আছে। আমাদের বের করতে হবে x-কে কতভাবেই কিছু অনন্য সংখ্যার n-তম ঘাতের যোগফল হিসেবে প্রকাশ করা যায়।

উদাহরণস্বরূপ, যদি ইনপুট x = 100 এবং n = 2 হয়, তবে আউটপুট হবে 3 কারণ সম্ভাব্য সমাধানগুলো হলো 6^2 + 8^2, 10^2 এবং 1^2 + 3^2 + 4^2 + 5^2 + 7^2।

সমাধানের ধাপসমূহ

  • ans := 0
  • solve() মেথড ডিফাইন করুন যা চারটি প্যারামিটার নেবে: x, n, cn, cs; প্রাথমিক মান cs = 0, cn = 1
  • p := cn^n
  • while p + cs < x:
    • ans := ans + solve(x, n, cn + 1, p + cs)
    • cn := cn + 1
    • p := cn^n
  • যদি p + cs == x, তবে ans := ans + 1
  • ans রিটার্ন করুন

উদাহরণ

নিচের ইমপ্লিমেন্টেশনটি দেখুন ভালো বুঝার জন্য:

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
  1. পাইথনে এনকোডেড মেসেজ ডিকোড করার উপায়ের সংখ্যা খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে প্রথম n বিজোড় সংখ্যার যোগফল খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে Nth ফিবোনাচ্চি সংখ্যা খুঁজে বের করার প্রোগ্রাম

  4. একটি সংখ্যার সম ফ্যাক্টরের যোগফল বের করার পাইথন প্রোগ্রাম