এখানে আমরা দেখব কিভাবে যেকোন সংখ্যার ফ্যাক্টরিয়াল ফলাফলের জন্য 0 সেকেন্ডের পরবর্তী সংখ্যা গণনা করা যায়। তাহলে n =5 হলে 5! =120. শুধুমাত্র একটি ট্রাইলিং 0 আছে। 20! এর জন্য 20 হিসাবে 4টি শূন্য হবে! =2432902008176640000।
সবচেয়ে সহজ পদ্ধতি হল ফ্যাক্টরিয়াল গণনা করা এবং 0 সেকেন্ড গণনা করা। কিন্তু এই পদ্ধতি n এর বড় মানের জন্য ব্যর্থ হয়। তাই আমরা অন্য পদ্ধতি অনুসরণ করব। অনুগামী শূন্য সেখানে থাকবে, যদি মৌলিক গুণনীয়ক 2 এবং 5 হয়। যদি আমরা 2s এবং 5s গণনা করি তাহলে আমরা ফলাফল পেতে পারি। তার জন্য আমরা এই নিয়ম মেনে চলব।
অনুগামী 0s =ফ্যাক্টোরিয়াল(n)
এর প্রাইম ফ্যাক্টরগুলিতে 5s গণনা
অ্যালগরিদম
countTrailingZeros(n)
begin count := 0 for i := 5, (n/i) >= 1, increase i := i * 5, do count := count + (n / i) done return count; end
উদাহরণ
#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 zeros: 4