यहां हम देखेंगे कि किसी भी संख्या के भाज्य के परिणाम के लिए अनुगामी 0s की संख्या की गणना कैसे करें। तो अगर n =5, तो 5! =120. केवल एक अनुगामी 0 है। 20! के लिए, यह 20 के रूप में 4 शून्य होगा! =2432902008176640000।
सबसे आसान तरीका सिर्फ फैक्टोरियल की गणना करना और 0 की गणना करना है। लेकिन यह दृष्टिकोण n के बड़े मान के लिए विफल रहता है। तो हम एक और तरीका अपनाएंगे। अनुगामी शून्य होगा, यदि अभाज्य गुणनखंड 2 और 5 हैं। यदि हम 2 और 5 को गिनें तो हम परिणाम प्राप्त कर सकते हैं। उसके लिए हम इस नियम का पालन करेंगे।
अनुगामी 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