কম্পিউটার

C++ এ ফ্যাক্টরিয়াল ট্রেইলিং জিরো


এখানে আমরা দেখব যে কোনও সংখ্যার ফ্যাক্টরিয়ালের ফলাফলের জন্য 0 সেকেন্ডের পিছনের সংখ্যা কীভাবে গণনা করা যায়। তাহলে n =5 হলে 5! =120. শুধুমাত্র একটি ট্রেইলিং 0. 20 এর জন্য! এটি 20 হিসাবে 4 শূন্য হবে! =2432902008176640000।

সবচেয়ে সহজ পদ্ধতি হল ফ্যাক্টরিয়াল গণনা করা এবং 0 সেকেন্ড গণনা করা। কিন্তু এই পদ্ধতি n এর একটি বড় মানের জন্য ব্যর্থ হয়। তাই আমরা অন্য পদ্ধতি অনুসরণ করব। অনুগামী শূন্য থাকবে যদি মৌলিক গুণনীয়ক 2 এবং 5 হয়। যদি আমরা 2s এবং 5s গণনা করি তাহলে আমরা ফলাফল পেতে পারি। তার জন্য, আমরা এই নিয়ম অনুসরণ করব।

অনুগামী 0s =ফ্যাক্টোরিয়াল(n)

এর প্রাইম ফ্যাক্টরগুলিতে 5s গণনা

তাই ট্রেইলিং 0s =$$\lvert\frac{n}{5}\rvert+\lvert\frac{n}{25}\rvert+\lvert\frac{n}{125}\rvert+...$$

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

  • সেট গণনা =0
  • এর জন্য i =5, (n/i)> 1, আপডেট i =i * 5, do
    • গণনা =গণনা + (n /i)
  • রিটার্ন গণনা

উদাহরণ (C++)

#include <iostream>
#include <cmath>
#define MAX 20
using namespace std;
int countTrailingZeros(int n) {
   int count = 0;
   for (int i = 5; n / i >= 1; i *= 5)
      count += n / i;
   return count;
}
main() {
   int n = 20;
   cout << "Number of trailing zeros: " << countTrailingZeros(n);
}

ইনপুট

Number of trailing zeroes: 20

আউটপুট

Number of trailing zeros: 4

  1. সি/সি++ প্রোগ্রামিং একটি সংখ্যার ফ্যাক্টোরিয়ালের মধ্যে শূন্যের পেছনের শূন্য গণনা করতে?

  2. C/C++ প্রোগ্রামটি একটি সংখ্যার ফ্যাক্টোরিয়ালের মধ্যে শূন্য গুনতে হয়?

  3. N-এর ভিত্তি B প্রতিনিধিত্বে অনুগামী শূন্যের সংখ্যা খুঁজুন! C++ ব্যবহার করে

  4. বেস 16 N এর প্রতিনিধিত্বে অনুগামী শূন্যের সংখ্যা খুঁজুন! C++ ব্যবহার করে