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

পাইথনে একটি সংখ্যার জোড় জায়গার অঙ্কগুলির গুণফল কি বিজোড় জায়গার অঙ্কগুলির যোগফল দ্বারা বিভাজ্য?

একটি সংখ্যা n দেওয়া থাকলে, আমাদের যাচাই করতে হবে যে n-এর ডান পাশ থেকে গণনা করলে জোড় জায়গায় থাকা অঙ্কগুলির গুণফল কি বিজোড় জায়গার অঙ্কগুলির যোগফল দ্বারা বিভাজ্য। ডান পাশের প্রথম অঙ্ককে ১ নম্বর জায়গা বিবেচনা করা হয়।

উদাহরণ

ইনপুট: n = 59361

আউটপুট: True

ব্যাখ্যা: ডান পাশ থেকে জোড় জায়গার অঙ্কগুলো হলো ১, ৩, ৫ (গুণফল = ১৫)। বিজোড় জায়গার অঙ্কগুলো হলো ৬, ৯ (যোগফল = ১৫)। যেহেতু ১৫, ১৫ দ্বারা বিভাজ্য, তাই ফলাফল True।

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

  1. digit_count = সংখ্যা n-এর মোট অঙ্কের সংখ্যা।
  2. total = 0 (বিজোড় জায়গার যোগফল), prod = 1 (জোড় জায়গার গুণফল)।
  3. যখন n > 0:
    • যদি digit_count জোড় হয়, তবে prod *= n % 10।
    • অন্যথায় total += n % 10।
    • n = n // 10 (শেষ অঙ্ক বাদ দিন)।
    • digit_count -= 1।
  4. যদি prod % total == 0 হয় তবে True ফেরত দিন, অন্যথায় False।

উদাহরণ কোড

from math import log10

def solve(n):
    digit_count = int(log10(n)) + 1
    total = 0
    prod = 1
    while n > 0:
        if digit_count % 2 == 0:
            prod *= n % 10
        else:
            total += n % 10
        n = n // 10
        digit_count -= 1
    if prod % total == 0:
        return True
    return False

n = 59361
print(solve(n))  # Output: True

ইনপুট

59361

আউটপুট

True
  1. পাইথনে কোয়েরি után জোড় সংখ্যাগুলোর যোগফল

  2. পাইথন প্রোগ্রাম লিস্টে ইভেন ও অড্ড সংখ্যা কাউন্ট করা

  3. পাইথনে অ্যারেয়ের সব ডিজিট ব্যবহার করে ৩ দিয়ে বিভাজ্য সংখ্যা বানানো সম্ভব কিনা চেক করা

  4. Python-এ সংখ্যা বিজোড় নাকি জোড় চেক করা