কম্পিউটার

একটি সংখ্যার আরও ভালো ভাজক খুঁজে পেতে পাইথন প্রোগ্রাম


ধরুন আমাদের একটি সংখ্যা n আছে। আমাদের এই অবস্থার উপর ভিত্তি করে n-এর ভাজক খুঁজে বের করতে হবে কোনটি ভাল:আমাদের দুটি সংখ্যা আছে p এবং q, যেটির অঙ্কের যোগফল একটি বড় সংখ্যার সাথে অন্যটির চেয়ে ভাল বলা হয়। যখন অঙ্কের যোগফল একই হয়, তখন ছোট সংখ্যাটিই ভালো।

সুতরাং, যদি ইনপুটটি n =180 এর মত হয় তবে আউটপুট 9 হবে কারণ ভাজকগুলি হল [1, 2, 3, 4, 5, 6, 9, 10, 12, 15, 18, 20, 30, 36, 45, 60, 90, 180]। সুতরাং যে সংখ্যার অঙ্কের যোগফল সর্বাধিক [9, 18, 36, 45, 90, 180], তবে তাদের মধ্যে 9টি ভাল সংখ্যা কারণ এর মান ছোট।

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

  • div :=1, md :=1
  • 2 থেকে n রেঞ্জের i জন্য, করুন
    • k :=i
    • যদি n mod i> 0 হয়, তাহলে
      • পরবর্তী পুনরাবৃত্তির জন্য যান
    • s :=0
    • যখন k> 0, do
      • s :=s + k mod 10
      • k :=k / 10
    • যদি s> md, তাহলে
      • md :=s
      • div :=i
  • রিটার্ন ডিভি

উদাহরণ

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

def solve(n):
   div = 1
   md = 1
   for i in range(2, n + 1):
      k = i
      if n % i > 0:
         continue
      s = 0
      while k > 0:
         s += k % 10
         k /= 10
      if s > md:
         md = s
         div = i

   return div

n = 180
print(solve(n))

ইনপুট

180

আউটপুট

9

  1. পাইথনে একটি পরিসরে নোডের সংখ্যা খুঁজে বের করার প্রোগ্রাম

  2. পাইথন প্রোগ্রাম একটি তালিকার ক্ষুদ্রতম সংখ্যা খুঁজে বের করতে

  3. পাইথন প্রোগ্রামে একটি সংখ্যার জোড় গুণনীয়কের সমষ্টি খুঁজুন

  4. পাইথন প্রোগ্রাম একটি তালিকায় সবচেয়ে বড় সংখ্যা খুঁজে বের করতে