কম্পিউটার

প্রদত্ত সংখ্যাটি d এর একটি পাওয়ার কিনা তা পরীক্ষা করুন যেখানে পাইথনে d এর শক্তি 2


ধরুন আমরা একটি সংখ্যা n এবং আরেকটি মান x, আমাদের পরীক্ষা করতে হবে এটি x এর একটি শক্তি কিনা, যেখানে x হল 2 এর একটি সংখ্যার শক্তি।

সুতরাং, যদি ইনপুটটি n =32768 x =32 এর মত হয়, তাহলে আউটপুটটি True হবে কারণ n হল x^3।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • প্রধান পদ্ধতি থেকে নিম্নলিখিতগুলি করুন -
  • cnt :=0
  • যদি n 0 না হয় এবং (n AND (n - 1)) 0 এর সমান হয়, তাহলে
    • যখন n> 1, do
      • n =n/2
      • cnt :=cnt + 1
    • রিটার্ন সিএনটি মোড (লগ সি বেস 2) 0 এর মতো
  • মিথ্যে ফেরত দিন

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

def find_pow_of_2(n):
   return (1 + find_pow_of_2(n / 2)) if (n > 1) else 0
def solve(n, c):
   cnt = 0
   if n and (n & (n - 1)) == 0:
      while n > 1:
         n >>= 1
         cnt += 1
      return cnt % (find_pow_of_2(c)) == 0
   return False
n = 32768
x = 32
print(solve(n, x))

ইনপুট

32768, 32

আউটপুট

True

  1. প্রাইম নম্বর চেক করতে পাইথন প্রোগ্রাম

  2. আর্মস্ট্রং নম্বর চেক করতে পাইথন প্রোগ্রাম

  3. পাইথন প্রোগ্রামে প্রদত্ত নম্বরটি ফিবোনাচি নম্বর কিনা তা কীভাবে পরীক্ষা করবেন?

  4. পাইথন প্রোগ্রামের জন্য কিভাবে একটি প্রদত্ত নম্বর একটি ফিবোনাচি নম্বর কিনা তা পরীক্ষা করবেন?