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

পাইথনে একটি সংখ্যা d-এর ঘাত কিনা যাচাই করা (যেখানে d হলো 2-এর ঘাত)

ধরি আমাদের একটি সংখ্যা n এবং অন্য একটি মান x আছে। আমাদের যাচাই করতে হবে যে n, x-এর ঘাত কিনা, যেখানে x হলো 2-এর ঘাতসংখ্যা।

উদাহরণস্বরূপ, n = 32768 এবং x = 32 হলে আউটপুট হবে True, কারণ n = x³।

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

  • cnt := 0
  • যদি n শূন্য না হয় এবং (n AND (n-1)) শূন্য হয়, তবে:
    • যতক্ষণ n > 1, n = n/2 এবং cnt বাড়ান
    • cnt mod (log₂c) যদি শূন্য হয় তবে true রিটার্ন করুন
  • অন্যথায় false রিটার্ন করুন

উদাহরণ

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. পাইথন প্রোগ্রাম: একটি দেয়া সংখ্যা ফিবোনাচ্চি সংখ্যা কিনা যাচাই করা