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

পাইথনে রি-অর্ডারড পাওয়ার অফ ২ চেক করার প্রোগ্রাম


মনে করুন একটি পজিটিভ ইন্টিজার 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 

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

  2. পাইথনে পলিগনের ক্ষেত্রফল বের করার প্রোগ্রাম

  3. পাইথনে পলিগনের পরিসীমা বের করার প্রোগ্রাম

  4. পাইথনে কোনো সংখ্যা ২-এর ঘাত কিনা চেক করা