কম্পিউটার

পাইথনে n সংখ্যাকে গুণ করার পর শেষে পরপর শূন্যের সংখ্যাটি খুঁজুন


ধরুন আমাদের n সংখ্যা সহ একটি অ্যারে আছে, আমাদের সমস্ত n সংখ্যাগুলিকে গুণ করার পরে শেষে ধারাবাহিক শূন্যের সংখ্যা ফেরত দিতে হবে৷

সুতরাং, যদি ইনপুটটি [200, 20, 5, 30, 40, 14] এর মতো হয়, তাহলে আউটপুট 6 হবে 200 * 20 * 5 * 30 * 40 * 14 =336000000, শেষে ছয়টি 0 আছে।

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

  • একটি ফাংশন সংজ্ঞায়িত করুন count_fact_two()। এটি n

    লাগবে৷
  • গণনা :=0

  • যখন n mod 2 হল 0, do

    • গণনা :=গণনা + 1

    • n :=n / 2 (শুধুমাত্র ভাগফল পূর্ণসংখ্যা হিসাবে)

  • ফেরত গণনা

  • একটি ফাংশন সংজ্ঞায়িত করুন count_fact_five()। এটি n

    লাগবে৷
  • গণনা :=0

  • যখন n mod 5 হল 0, do

    • গণনা :=গণনা + 1

    • n :=n / 5 (শুধুমাত্র ভাগফল পূর্ণসংখ্যা হিসাবে)

  • ফেরত গণনা

  • প্রধান পদ্ধতি থেকে, নিম্নলিখিতগুলি করুন -

  • n :=A

    এর আকার
  • twos :=0, Fives :=0

  • 0 থেকে n রেঞ্জের জন্য, করুন

    • twos :=twos + count_fact_two(A[i])

    • Fives :=Fives + count_fact_five(A[i])

  • যদি দুই-পাঁচ, তাহলে

    • দুই ফেরত

  • অন্যথায়,

    • ফাইভ রিটার্ন করুন

উদাহরণ

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

def count_fact_two( n ):
   count = 0
   while n % 2 == 0:
      count+=1
      n = n // 2
   return count
def count_fact_five( n ):
   count = 0
   while n % 5 == 0:
      count += 1
      n = n // 5
   return count
def get_consecutive_zeros(A):
   n = len(A)
   twos = 0
   fives = 0
   for i in range(n):
      twos += count_fact_two(A[i])
      fives += count_fact_five(A[i])
   if twos < fives:
      return twos
   else:
      return fives
A = [200, 20, 5, 30, 40, 14]
print(get_consecutive_zeros(A))

ইনপুট

[200, 20, 5, 30, 40, 14]

আউটপুট

6

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

  2. পাইথন প্রোগ্রাম একটি প্রদত্ত স্ট্রিং এর বাইনারি রিপ্রেজেন্টেশনে সবচেয়ে বড় ধারাবাহিক 1 এর দৈর্ঘ্য খুঁজে বের করতে।

  3. পাইথন ব্যবহার করে কিভাবে একটি সংখ্যার ফ্যাক্টরিয়াল খুঁজে বের করবেন?

  4. পাইথনে সংখ্যার তালিকায় কীভাবে সর্বশ্রেষ্ঠ সংখ্যা খুঁজে পাবেন?