মনে করুন একটি পজিটিভ ইন্টিজার N আছে। আমরা এর ডিজিটগুলো যেকোনো ক্রমে রি-অর্ডার করতে পারি (মূল ক্রমও شامل) এমনভাবে যে লিডিং ডিজিট শূন্য না হয়। আমাদের চেক করতে হবে কি এইভাবে কখনো ফলাফল ২-এর ঘাত হয়।
যেমন, ইনপুট N = 812 হলে, আউটপুট হবে True।
সমাধান পদ্ধতি
এই সমস্যাটি সমাধান করতে নিচের ধাপগুলো অনুসরণ করুন:
i := 1
যখন i <= 1000000000, तब
s := i-কে স্ট্রিংএ কনভার্ট করুন
s := s-এর ক্যারেক্টারগুলো সর্ট করুন
t := n-কে স্ট্রিংএ কনভার্ট করুন
t := t-এর ক্যারেক্টারগুলো সর্ট করুন
যদি s == t হয়, তবে
True রিটার্ন করুন
i := i * 2
False রিটার্ন করুন
উদাহরণ
নিচের ইমপ্লিমেন্টেশনটি দেখুন আরও ভালো বোঝার জন্য:
def solve(n): i=1 while i<=1000000000: s=str(i) s=''.join(sorted(s)) t=str(n) t=''.join(sorted(t)) if s==t: return True i=i*2 return False N = 812 print(solve(N))
ইনপুট
812
আউটপুট
True