एक गैर-ऋणात्मक पूर्णांक n का गुणनखंड उन सभी धनात्मक पूर्णांकों का गुणनफल होता है जो n से कम या उसके बराबर होते हैं।
उदाहरण के लिए:5 का भाज्य 120 है।
5! = 5 * 4 * 3 * 2 *1 5! = 120
एक पूर्णांक का भाज्य एक पुनरावर्ती कार्यक्रम या एक गैर-पुनरावर्ती कार्यक्रम का उपयोग करके पाया जा सकता है। इन दोनों का उदाहरण इस प्रकार दिया गया है।
गैर-पुनरावर्ती प्रोग्राम का उपयोग करके फ़ैक्टोरियल
लूप के लिए किसी संख्या का भाज्य ज्ञात करने के लिए उपयोग किया जा सकता है। यह निम्न प्रोग्राम का उपयोग करके प्रदर्शित किया जाता है -
उदाहरण
#include <iostream> using namespace std; int main() { int n = 5, fact = 1, i; for(i=1; i<=n; i++) fact = fact * i; cout<<"Factorial of "<<n<<" is "<<fact; return 0; }
आउटपुट
Factorial of 5 is 120
उपरोक्त कार्यक्रम में, लूप के लिए 1 से n तक चलता है। लूप के प्रत्येक पुनरावृत्ति के लिए, तथ्य को i से गुणा किया जाता है। तथ्य का अंतिम मूल्य 1 से n तक की सभी संख्याओं का गुणनफल है। यह निम्नलिखित कोड स्निपेट का उपयोग करके प्रदर्शित किया जाता है।
for(i=1; i<=n; i++) fact = fact * i;
पुनरावर्ती प्रोग्राम का उपयोग करके फैक्टोरियल
निम्न प्रोग्राम किसी संख्या का भाज्य ज्ञात करने के लिए पुनरावर्ती प्रोग्राम प्रदर्शित करता है।
उदाहरण
#include <iostream> using namespace std; int fact(int n) { if ((n==0)||(n==1)) return 1; else return n*fact(n-1); } int main() { int n = 5; cout<<"Factorial of "<<n<<" is "<<fact(n); return 0; }
आउटपुट
Factorial of 5 is 120
उपरोक्त कार्यक्रम में, फ़ंक्शन फ़ैक्ट () एक पुनरावर्ती फ़ंक्शन है। मुख्य () फ़ंक्शन उस संख्या का उपयोग करके तथ्य () को कॉल करता है जिसके फैक्टोरियल की आवश्यकता होती है। यह निम्नलिखित कोड स्निपेट द्वारा प्रदर्शित किया जाता है।
cout<<"Factorial of "<<n<<" is "<<fact(n);
यदि संख्या 0 या 1 है, तो fact() 1 लौटाता है। यदि संख्या कोई अन्य है, तो fact() खुद को n-1 मान के साथ पुनरावर्ती रूप से कॉल करता है।
यह निम्नलिखित कोड स्निपेट का उपयोग करके प्रदर्शित किया जाता है -
int fact(int n) { if ((n==0)||(n==1)) return 1; else return n*fact(n-1); }