এখানে আমরা দেখব কীভাবে যেকোনো সংখ্যার ফ্যাক্টোরিয়ালের ফলাফলে ট্রেইলিং ০ (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