इस लेख में, हम उदाहरण के लिए इसके भाज्य के आधार 16 निरूपण में दी गई संख्या N के अनुगामी शून्यों को खोजने की समस्या को समझेंगे
Input : N = 7 Output : 1 Explanation : fact(7) = 5040 in base10 and 13B0 in base16 having 1 trailing zero. Input : N = 11 Output : 2 Explanation : fact(11) = 39916800 in base10 and 2611500 in base16 having 2 trailing zeroes.
आइए सबसे पहले किसी भी दशमलव संख्या को एक आधार से दूसरे आधार में बदलने की प्रक्रिया का पुनरावलोकन करें; आइए (5040)10 को (?)16
. में बदलने का एक उदाहरण लेते हैं
यानी, संख्या को 16 से विभाजित करना और शेष को तब तक रखना जब तक संख्या को और विभाजित नहीं किया जा सकता है। परिणाम शेष उल्टे क्रम में होगा।
परिणामस्वरूप, हमारे पास एक अनुगामी शून्य होता है, और यह अनुगामी शून्य हमें तब प्राप्त होता है जब 16 संख्या को शेष 0 से विभाजित करता है।
5040 =161 * 451* 71 का अभाज्य गुणनखंड, जिसका अर्थ है 16, 5040 को 1 बार शेष 0 से विभाजित करता है, अनुगामी शून्य के बराबर। इस तरह, हम अनुगामी शून्यों की संख्या की गणना कर सकते हैं।
समाधान खोजने के लिए दृष्टिकोण
अनुगामी शून्यों की संख्या ज्ञात करने के तरीके के बारे में हमने ऊपर चर्चा की। हम 16 =24 भी जानते हैं, जिसका मतलब है कि एन में उच्चतम शक्ति 2 को चार से विभाजित करने पर 16 की उच्चतम शक्ति के बराबर होगा। इसे लीजेंड्रे का सूत्र भी कहा जाता है।
उपरोक्त दृष्टिकोण के लिए C++ कोड
यहाँ C++ सिंटैक्स दिया गया है जिसे हम दी गई समस्या को हल करने के लिए इनपुट के रूप में उपयोग कर सकते हैं -
उदाहरण
#include <bits/stdc++.h> using namespace std; int main () { int n = 11; long long int count = 0; long long int value, power = 2; long long int result; do{ value = n / power; count += value; power *= 2; } while (value != 0); // Count has the highest power of 2 result = count / 4; cout << "Number of trailing zeroes in base 16 representation of N : " << result; }
आउटपुट
Number of trailing zeroes in base 16 representation of N: 2
उपरोक्त कोड की व्याख्या
- हम दो के साथ पावर इनिशियलाइज़ कर रहे हैं क्योंकि हमें उच्चतम पावर 2 की गणना करने की आवश्यकता है।
- लेजेंडर के फॉर्मूले को थोड़ी देर के लूप में लागू करना जहां हम n को घात से विभाजित करते हैं, जो शुरू में दो है, और 2 के साथ मान और शक्ति के साथ बढ़ती हुई गिनती है।
- 2 की उच्चतम शक्ति को चार से विभाजित करने के बाद जो कि गणना चर में संग्रहीत है।
- आखिरकार हम परिणाम प्रिंट कर रहे हैं।
निष्कर्ष
इस लेख में, हम फैक्टोरियल एन के बेस 16 प्रतिनिधित्व में अनुगामी शून्यों की संख्या खोजने की समस्या को हल करते हैं, जिसे हम लीजेंड्रे के सूत्र का उपयोग करके हल करते हैं। हम उसी समस्या को हल करने के लिए C++ कोड भी लिखते हैं। आप इस कोड को किसी अन्य भाषा जैसे जावा, सी, पायथन, आदि में लिख सकते हैं। हमें उम्मीद है कि आपको यह लेख मददगार लगा होगा।