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

C++-এ ফ্যাক্টোরিয়ালের ট্রেইলিং জিরো (Factorial Trailing Zeroes)


এখানে আমরা দেখব কীভাবে যেকোনো সংখ্যার ফ্যাক্টোরিয়ালের ফলাফলে ট্রেইলিং ০ (Trailing 0s) এর সংখ্যা বের করা যায়। যেমন n = 5 হলে, 5! = 120। এখানে শুধু ১টি ট্রেইলিং ০। 20! এর জন্য এটি হবে ৪টি জিরো কারণ 20! = 2432902008176640000।

সহজ পদ্ধতি হলো ফ্যাক্টোরিয়াল ক্যালকুলেট করে ০ গণনা করা। কিন্তু বড় n-এর জন্য এই পদ্ধতি কাজ করে না। তাই আমরা অন্য পদ্ধতি অনুসরণ করব। ট্রেইলিং জিরো থাকবে যদি প্রাইম ফ্যাক্টর ২ এবং ৫ থাকে। ২ এবং ৫ গণনা করলে ফলাফল পাওয়া যাবে। এর জন্য আমরা নিচের নিয়ম অনুসরণ করব।

Trailing 0s = ফ্যাক্টোরিয়াল(n)-এর প্রাইম ফ্যাক্টরে ৫-এর সংখ্যা

তবে Trailing 0s = $$\lvert\frac{n}{5}\rvert+\lvert\frac{n}{25}\rvert+\lvert\frac{n}{125}\rvert+...$$

এটি সমাধানের জন্য নিচের ধাপগুলো অনুসরণ করতে হবে −

  • count = 0 সেট করুন
  • for i = 5, (n/i) > 1, i = i * 5 আপডেট করুন, do
    • count = count + (n /i)
  • count রিটার্ন করুন

উদাহরণ (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. সি/সি++ প্রোগ্রাম: ফ্যাক্টোরিয়ালে ট্রেলিং শূন্যের সংখ্যা গণনা

  3. C++ দিয়ে B বেসে N!-এর末尾 শূন্যের সংখ্যা বের করা

  4. C++ দিয়ে বেস ১৬-এ N!-এর শেষ শূন্যের সংখ্যা বের করা