কম্পিউটার

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


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

সুতরাং, যদি ইনপুটটি n =59361 এর মত হয়, তাহলে আউটপুটটি True হবে (1*3*5) =(6+9)।

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

  • digit_count :=প্রদত্ত সংখ্যার সংখ্যা সংখ্যা n
  • মোট :=0, উৎপাদন :=1
  • যখন n> 0, do
    • যদি digit_count জোড় হয়, তাহলে
      • prod :=prod * n এর শেষ সংখ্যা
    • অন্যথায়,
      • মোট :=মোট + n এর শেষ সংখ্যা
    • n :=(n / 10) এর ভাগফল
    • digit_count :=digit_count - 1
  • যদি গুণফল মোট দ্বারা বিভাজ্য হয়, তাহলে
    • সত্য ফেরান
  • মিথ্যে ফেরত দিন

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

উদাহরণ কোড

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))

ইনপুট

59361

আউটপুট

True

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

  2. একটি তালিকায় জোড় এবং বিজোড় সংখ্যা গণনা করার জন্য পাইথন প্রোগ্রাম

  3. একটি অ্যারের সমস্ত সংখ্যা ব্যবহার করে 3 সংখ্যা দ্বারা বিভাজ্য করা সম্ভব কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম

  4. পাইথন ব্যবহার করে একটি সংখ্যা বিজোড় বা জোড় কিনা তা কীভাবে পরীক্ষা করবেন?