একটি সংখ্যা n দেওয়া থাকলে, n! (ফ্যাক্টোরিয়াল)-এর শেষে কতটি শূন্য আছে তা বের করতে হবে। ট্রেলিং জিরোর সংখ্যা নির্ভর করে ১০-এর গুণনখণ্ডের ওপর, যা আবার ২ এবং ৫-এর জোড়ার ওপর নির্ভর করে। যেহেতু ২-এর সংখ্যা ৫-এর চেয়ে বেশি, সুতরাং শুধু ৫-এর ঘাত গণনা করলেই চলে।
সূত্র
ট্রেলিং জিরো = n/5 + n/25 + n/125 + ... (যতক্ষণ ভাগফল ০ না হয়)
উদাহরণ
n = 20
20! = 2432902008176640000
ট্রেলিং জিরো = 20/5 + 20/25 = 4 + 0 = 4
C++ কোড উদাহরণ
#include <iostream>
using namespace std;
int countTrailingZeros(int n) {
int count = 0;
for (int i = 5; n / i >= 1; i *= 5)
count += n / i;
return count;
}
int main() {
int n = 20;
cout << "Number of trailing zeros: " << countTrailingZeros(n);
return 0;
}
ইনপুট
20
আউটপুট
Number of trailing zeros: 4