মনে করুন একটি সংখ্যা n আছে। আমাদের চেক করতে হবে কি n কে ভিন্ন ৩-এর ঘাতগুলোর যোগফল হিসেবে প্রকাশ করা সম্ভব কিনা। একটি ইন্টিজার y হলো ৩-এর ঘাত যদি এমন একটি ইন্টিজার x থাকে যাতে y = 3^x।
যেমন, ইনপুট n = 117 হলে, আউটপুট হবে True কারণ 117 = 3^4 + 3^3 + 3^2 = 81 + 27 + 9।
সমাধান পদ্ধতি
এই সমস্যাটি সমাধান করতে নিচের ধাপগুলো অনুসরণ করুন:
i = 16 থেকে ০ পর্যন্ত (কমাতে ১)
যদি n >= 3^i হয়, তবে
n := n - 3^i
যদি n > 0 হয়, তবে
False রিটার্ন করুন
True রিটার্ন করুন
উদাহরণ
নিচের ইমপ্লিমেন্টেশনটি দেখুন আরও ভালো বোঝার জন্য:
def solve(n): for i in range(16, -1, -1): if n >= pow(3,i): n -= pow(3,i) if n > 0: return False return True n = 117 print(solve(n))
ইনপুট
117
আউটপুট
True