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

Python-এ এমন সংখ্যা m খুঁজে বের করার প্রোগ্রাম যাতে এর ফ্যাক্টোরিয়ালে n সংখ্যক ০ থাকে শেষে


মান লেট n একটি সংখ্যা। আমাদের সবচেয়ে ছোট সংখ্যা m খুঁজে বের করতে হবে যাতে m-এর ফ্যাক্টোরিয়ালে কমপক্ষে n সংখ্যক ০ থাকে শেষে।

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

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

  • একটি ফাংশন count_fives() সংজ্ঞায়িত করুন। এটি n নিবে
  • cnt := 0
  • যখন n > 0, করুন
    • n := floor of (n / 5)
    • cnt := cnt + n
  • cnt রিটার্ন করুন
  • মেইন মেথড থেকে, নিচের কাজ করুন −
  • left := 1
  • right := 5^24
  • যখন right - left > 5, করুন
    • mid := floor of ((right + left) / 10) * 5
    • fives := count_fives(mid)
    • যদি fives n-এর সমান হয়, তবে
      • right := mid
      • left := right - 5
      • লুপ থেকে বের হোন
    • অন্যথায় যখন fives < n, তবে
      • left := mid
    • অন্যথায়,
      • right := mid
  • right রিটার্ন করুন

উদাহরণ

বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশন দেখুন −

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. পাইথনে BST-এ নির্দিষ্ট রেঞ্জে থাকা নোডের সংখ্যা খুঁজে বের করার প্রোগ্রাম

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

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

  4. পাইথনে লিস্ট থেকে সর্বোচ্চ সংখ্যা বের করা