Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में किसी संख्या के फैक्टोरियल में अनुगामी शून्यों की गिनती


समस्या विवरण

एक पूर्णांक संख्या इनपुट के रूप में दी गई है। लक्ष्य उस संख्या के लिए गणना किए गए फैक्टोरियल में अनुगामी शून्यों की संख्या ज्ञात करना है। एक संख्या N का फैक्टोरियल रेंज [1, N] में सभी संख्याओं का गुणनफल है।

हम जानते हैं कि हमें अनुगामी शून्य तभी मिलता है जब संख्या 10 का गुणक हो या उसमें गुणनखंड जोड़ी (2,5) हो। 5 से बड़ी किसी भी संख्या के सभी फैक्टोरियल में, उस संख्या के अभाज्य गुणनखंड में 2 की संख्या 5 से अधिक होती है। किसी संख्या को 5 की घातों से विभाजित करने पर उसके गुणनखंड में 5 की संख्या मिल जाएगी। इसलिए, 5 की संख्या हमें अनुगामी शून्यों की संख्या बताएगी।

उदाहरण

इनपुट

number=6

आउटपुट

फैक्टोरियल में अनुगामी शून्यों की संख्या: 1

व्याख्या

फैक्टोरियल 720 है। 720 के अभाज्य गुणनखंड: 2^4 * 3^2 * 5^1। तो केवल एक (2,5) जोड़ी मौजूद है इसलिए अनुगामी शून्य 1 है।

इनपुट

number=12

आउटपुट

फैक्टोरियल में अनुगामी शून्यों की संख्या: 2

व्याख्या

फैक्टोरियल 479001600 है। अभाज्य गुणनखंड: 2^10 * 3^5 * 5^2 * 7^1 * 11^1। तो हमें (2,5) की 2 जोड़ियां मिल सकती हैं इसलिए अनुगामी शून्य 2 हैं।

दृष्टिकोण

इस दृष्टिकोण में हम संख्या को 5 की घातों से विभाजित करेंगे। यदि इसका परिणाम 1 से अधिक है तो अनुगामी शून्यों की संख्या 5 की संख्या होगी। इसे गिनती में जोड़ें।

एल्गोरिदम चरण

  • एक पूर्णांक number इनपुट के रूप में लें।
  • फंक्शन trailing_zeros(int number) number लेता है और संख्या के फैक्टोरियल में अनुगामी शून्यों की संख्या लौटाता है।
  • प्रारंभिक गिनती 0 लें।
  • for लूप का उपयोग करके, संख्या को 5 की घातों से विभाजित करें।
  • यदि number/i 1 से अधिक या बराबर है, तो इस मान को गिनती में जोड़ें।
  • लूप के अंत में परिणाम के रूप में गिनती लौटाएं।

C++ कोड उदाहरण

#include <iostream>
using namespace std;

int trailing_zeros(int number) {
    int count = 0;
    for (int i = 5; number / i >= 1; i *= 5) {
        int temp = number / i;
        count = count + temp;
    }
    return count;
}

int main() {
    int number = 50;
    cout << "फैक्टोरियल में अनुगामी शून्यों की संख्या: " << trailing_zeros(number);
    return 0;
}

आउटपुट

फैक्टोरियल में अनुगामी शून्यों की संख्या: 12
  1. C++ में आयत में वर्गों की संख्या गिनना C++ में आयत में वर्गों की संख्या गिनना

    =B। लक्ष्य LxB आकार के आयत में समायोजित किए जा सकने वाले वर्गों की संख्या ढूंढना है। उपरोक्त आकृति 3x2 आकार के एक आयत को दर्शाती है। इसमें 2, 2x2 वर्ग और 6, 1x1 वर्ग हैं। कुल वर्ग = 6+2=8। LxB आकार के हर आयत में L*B संख्या के 1x1 वर्ग होते हैं। सबसे बड़े वर्ग BxB आकार के होते हैं। L=B=1 के लिए, वर

  1. - जावा प्रोग्राम: संख्या के फैक्टोरियल में अनुगामी शून्यों की गिनती

    उदाहरण= 1; i *= 5) { count += num / i; } return count; } public static void main(String[] args) { int num = 1000000; System.out.println(num + फैक्टोरियल में अनुगामी शून्यों की संख्या है: + trailingZero(num)); } } आउटपुट 1000000

  1. - पायथन प्रोग्राम: किसी संख्या के फैक्टोरियल में अनुगामी शून्यों की गणना करें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक पूर्णांक n दिया गया है, हमें फैक्टोरियल में अनुगामी शून्यों की संख्या गिननी है। उदाहरण = 1): count += int(n / i) i *= 5 return int(count) # ड्राइवर प्रोग्राम n = 79 print(Count of trailing 0s in, n, ! i