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

बड़ी संख्या का फैक्टोरियल


परिचय

कंप्यूटर में, वेरिएबल्स मेमोरी स्थानों में संग्रहीत होते हैं। लेकिन मेमोरी स्थान का आकार निश्चित होता है, इसलिए जब हम 15! या 20! जैसे कुछ बड़े मान का फैक्टोरियल खोजने का प्रयास करते हैं, तो फैक्टोरियल मान मेमोरी रेंज को पार कर जाता है और गलत परिणाम देता है।

बड़ी संख्याओं की गणना के लिए, हमें परिणाम संग्रहीत करने के लिए एक सरणी का उपयोग करना होगा। सरणी के प्रत्येक तत्व में, परिणाम के विभिन्न अंक संग्रहीत होते हैं। लेकिन यहां हम सीधे सरणी के साथ कुछ संख्या को गुणा नहीं कर सकते, हमें परिणाम सरणी के सभी अंकों के लिए मैन्युअल गुणन प्रक्रिया करनी होगी।

इनपुट और आउटपुट

इनपुट: एक बड़ी संख्या: 50
आउटपुट: दी गई संख्या का फैक्टोरियल है: 30414093201713378043612608166064768844377641568960512000000000000

एल्गोरिदम

multiply(x, multiplicand)

इनपुट: संख्या x, और बड़ा गुणक एक सरणी के रूप में।

आउटपुट: गुणन के बाद परिणाम।

Begin
    carry := 0
    multiplicand के सभी अंकों i के लिए, करें
        prod := i*x + carry
        i := prod mod 10
        carry := prod / 10
    done
    जब तक carry ≠ 0, करें
        multiplicand सरणी के अंत में (carry mod 10) डालें
        carry := carry/10
    done
End

factorial(n)

इनपुट: संख्या n।

आउटपुट: n का फैक्टोरियल खोजें।

Begin
    परिणाम सरणी परिभाषित करें।
    परिणाम में 1 डालें
    i := 2 से n तक, करें
        multiply(i, result)
    done
    परिणाम को उल्टा करें
    परिणाम लौटाएं
End

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

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

void multiply(int x, vector<int>& multiplicand) {
    // multiplicand को x से गुणा करें
    int carry = 0; // कैरी को 0 से आरंभ करें
    vector<int>::iterator i;
    for (i = multiplicand.begin(); i != multiplicand.end(); i++) {
        // multiplicand के सभी अंकों के साथ x को गुणा करें
        int prod = (*i) * x + carry;
        *i = prod % 10; // उत्पाद का केवल अंतिम अंक डालें
        carry = prod / 10; // शेष भाग को कैरी के साथ जोड़ें
    }
    while (carry) {
        // जब कैरी मौजूद हो
        multiplicand.push_back(carry % 10);
        carry = carry / 10;
    }
}

void factorial(int n) {
    vector<int> result;
    result.push_back(1); // पहले परिणाम के रूप में 1 संग्रहीत करें
    for (int i = 2; i <= n; i++)
        multiply(i, result); // संख्याओं को गुणा करें 1*2*3*......*n
    cout << "Factorial of given number is: " << endl;
    reverse(result.begin(), result.end()); // परिणाम के क्रम को उल्टा करें
    vector<int>::iterator it;
    for (it = result.begin(); it != result.end(); it++)
        cout << *it;
}

int main() {
    factorial(50);
}

आउटपुट

Factorial of given number is: 30414093201713378043612608166064768844377641568960512000000000000
  1. - जावा प्रोग्राम से किसी संख्या का फैक्टोरियल (Factorial) निकालना

    इस लेख में हम समझेंगे कि किसी संख्या का फैक्टोरियल कैसे निकाला जाता है। किसी संख्या का फैक्टोरियल उस संख्या का उसके प्रत्येक निचली संख्या के साथ गुणनफल होता है। फैक्टोरियल शून्य से बड़ी प्राकृतिक संख्याओं पर लागू एक फ़ंक्शन है। फैक्टोरियल फ़ंक्शन का प्रतीक एक संख्या के बाद विस्मयादिबोधक चिह्न होता

  1. - पायथन में बड़ी संख्या का फैक्टोरियल खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक बड़ी संख्या n है। हमें इसका फैक्टोरियल ज्ञात करना है। कुछ अन्य भाषाओं में बड़ी संख्या का फैक्टोरियल ज्ञात करना बहुत कठिन होता है क्योंकि यह पूर्णांक डेटा प्रकारों की सीमा से अधिक हो सकता है। लेकिन पायथन में यह स्वचालित रूप से लंबाई का पता लगाता है और डिफ़ॉल्ट रूप से संख्या को

  1. - Python में factorial()

    किसी संख्या का फैक्टोरियल ढूंढना डेटा विश्लेषण और Python में शामिल अन्य गणितीय विश्लेषण में एक बार-बार आने वाली आवश्यकता है। फैक्टोरियल हमेशा एक पॉजिटिव इंटीजर के लिए 1 से दी गई संख्या तक के सभी पूर्णांकों को गुणा करके पाया जाता है। इसके लिए तीन दृष्टिकोण हो सकते हैं जैसा कि नीचे दिखाया गया है।For L