কম্পিউটার

M সংখ্যাটি এমনভাবে খুঁজে বের করার প্রোগ্রাম যাতে পাইথনের শেষে 0s এর n সংখ্যা থাকে


ধরুন আমাদের একটি সংখ্যা n আছে। আমাদের সবচেয়ে ছোট সংখ্যা m খুঁজে বের করতে হবে, যেমন m এর ফ্যাক্টোরিয়ালের অন্তত n সংখ্যা 0s।

সুতরাং, যদি ইনপুট n =2 এর মত হয়, তাহলে আউটপুট 10 হবে কারণ 10! =3628800 এবং 9! =362880, 2 শূন্য সহ সর্বনিম্ন সংখ্যা হল 10৷

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

  • একটি ফাংশন সংজ্ঞায়িত করুন count_fives()। এটি n
  • লাগবে
  • cnt :=0
  • যখন n> 0, do
    • n :=(n / 5) এর ফ্লোর
    • cnt :=cnt + n
  • cnt ফেরত
  • প্রধান পদ্ধতি থেকে, নিম্নলিখিতগুলি করুন -
  • বামে :=1
  • ডান:=5^24
  • যখন ডান - বাম> 5, ডু
    • মাঝে :=ফ্লোর (ডান + বাম) / 10) * 5
    • পাঁচ :=count_fives(মিড)
    • যদি Fives n এর মত হয়, তাহলে
      • ডান :=মধ্য
      • বামে :=ডান - 5
      • লুপ থেকে বেরিয়ে আসুন
    • অন্যথায় যখন Fives
    • বামে :=মধ্য
  • অন্যথায়,
    • ডান :=মধ্য
  • ডানে ফিরুন
  • উদাহরণ

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

    def count_fives(n):
       cnt = 0
       while n > 0:
          n = n // 5
          cnt += n
       return cnt
    
    def solve(n):
       left = 1
       right = 5**24
       while right - left > 5:
          mid = int((right + left) / 10) * 5
          fives = count_fives(mid)
          if fives == n:
             right = mid
             left = right - 5
             break
          elif fives < n:
             left = mid
          else:
             right = mid
       return right
    
    n = 2
    print(solve(n))

    ইনপুট

    2
    

    আউটপুট

    10

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

    2. একটি ধনাত্মক সংখ্যা M খুঁজুন যেমন gcd(N^M,N&M) পাইথনে সর্বাধিক

    3. পাইথন প্রোগ্রামে প্রাইম নম্বর খোঁজার বিভিন্ন পদ্ধতি

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