हमें एक पूर्णांक मान दिया गया है और कार्य पहले किसी संख्या के भाज्य की गणना करना है और फिर परिणाम में अंकों की कुल संख्या की गणना करना है।
फैक्टोरियल नंबर क्या है
किसी संख्या के भाज्य की गणना अंकों के मान को 1 से घटाते हुए अंकों को गुणा करके की जाती है। इसे प्रतीक '!' अर्थात 0!, 1!, 2!, 3!, 5!,... द्वारा दर्शाया जाता है। ।,आदि। 0 का फैक्टोरियल! और 1! हमेशा 1.
I.e. factorial of 2 = 2 * (2-1) = 2 * 1 = 2 factorial of 3 = 3 * (3-1) * (2-1) = 3 * 2 * 1 = 6
उदाहरण के लिए
Input − factorial(6) Output − number of digits in factorial(6) is: 3
स्पष्टीकरण - चूंकि 6 का भाज्य मान 720 है और इसमें 3 अंक हैं, इसलिए परिणाम 3
. हैInput − factorial(12) Output− number of digits in factorial(12) is: 9
स्पष्टीकरण - चूंकि 12 का भाज्य मान 479001600 है और इसमें 9 अंक हैं, इसलिए परिणाम 9 है।
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
इनपुट करें कि किस भाज्य की गणना करने की आवश्यकता है।
-
यदि संख्या 0 से कम है तो 0 लौटाएं क्योंकि ऋणात्मक संख्या का कोई तथ्यात्मक मान नहीं होता है
-
यदि संख्या 1 है तो 1 लौटाएं क्योंकि 1! 1 है और इसमें 1 अंक है।
-
अगर संख्या 1 से अधिक है यानी 2 से शुरू होती है या एक लूप बनाने से अधिक है, तो 2 से शुरू होकर यह संख्या से कम या बराबर है
-
एक अस्थायी चर लें, मान लें कि d और इसे लूप के बाहर 0 से प्रारंभ करें और लूप के अंदर इसे i के प्रत्येक पुनरावृत्ति तक log10(i) के मान के साथ जोड़ते रहें।
-
उसके बाद, 'floor(d)+1' का फ्लोर वैल्यू लौटाएं
-
परिणाम प्रिंट करें।
उदाहरण
#include <iostream> #include <cmath> using namespace std; // This function returns the number of digits present in num! int count_digits(int num){ // factorial exists only if num <= 0 if (num < 0){ return 0; } // base case if (num <= 1){ return 1; } // else iterate through num and calculate the // value double d = 0; for (int i=2; i<=num; i++){ d += log10(i); } return floor(d) + 1; } int main(){ cout<<"number of digits in factorial(1) is: "<<count_digits(1)<< endl; cout<<"number of digits in factorial(6) is: "<<count_digits(6) << endl; cout<<"number of digits in factorial(106) is: "<<count_digits(106) << endl; return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
number of digits in factorial(1) is: 1 number of digits in factorial(6) is: 3 number of digits in factorial(106) is: 171