Factorial Program in C Language in Hindi

C programming language के इस हिंदी tutorial में हम अपने C programs में user से एक number input लेकर उसका factorial find (print) करना सीखेंगे.

आप C programming में factorial find या print करने का program बहुत तरह से बना सकते हो. हम भी नीचे दिए गये 4 तरीकों से user से number input लेकर उसका factorial print करने के C programs बनाएंगे.

Factorial क्या होता है ये आप में से ज्यादातर सभी जानते ही होंगे और जो नहीं जानते हैं की फ़ैक्टोरियल क्या होता है वो नीचे दी गयी factorial definition को हिंदी के सरल शब्दों में पढ़ सकते हैं.

Factorial उस गुणनफल (product) को कहा जाता है जो number 1 से दिए गए positive number (N) के multiply करने पर आता है.

जैसे की अगर आप number N का factorial पता करना चाहते हो तो उसके लिए आपको 1 से लेकर N तक के सभी numbers का multiply (गुणा) करना होगा जैसे की आप नीचे examples में देख सकते हो.

Factorial Examples:

3 = 1 * 2 * 3 = 6
5 = 1 * 2 * 3 * 4 * 5 = 120
7 = 1 * 2 * 3 * 4 * 5 * 6 * 7 = 5040

ऊपर program में asterisk symbol ( * ) देखकर confuse मत हो जाना. C programming में multiply के लिए इस symbol ( x )  की जगह asterisk symbol ( * ) का use होता है.

Factorial क्या होता है ये तो आप समझ गए अब हम एक-एक करके for loop, while loop, function और recurison की help से factorial find करने का C programs बनाएंगे और साथ-साथ उसका logic भी समझेंगे.

नीचे सभी C programs में हमने पहले एक number variable n में input लिया है और फिर अलग-अलग logic से variable n का factorial find करके उसे print कराया है.

Find Factorial of a Number Program in C using For Loop

जैसा की आप जानते हैं ज्यादातर सभी C data types के variables में value store करने की एक limit या range होती है.

नीचे program में हमने int data type का use किया है अगर आप किसी बड़े number का factorial find करना चाहते हो तो किसी और data type का use कर सकते हो.

#include<stdio.h>
int main()
{
    int i,n,f=1;

    printf("Enter a Number : ");
    scanf("%d",&n);

    for(i=1;i<=n;i++)
    {
        f=f*i;
    }

    printf("Factorial of %d is %d",n,f);

    return 0;
}

Output:

Enter a Number : 5
Factorial of 5 is 120

Explanation:

जैसा की आप ऊपर output में देख सकते हो की user ने number 5 input किया जो store हुआ होगा variable n में और इसकी वजह से for loop 5 बार चलेगा.

for loop के हर iteration पर variable i की value में 1 number increment होता रहेगा, जैसा की आप नीचे for loop के iteration steps में देख सकते हो.

इसके अलावा loop के अंदर variable f variable i से multiply करके उस product को store करके next iteration पर उस stored product का multiply फिर से variable i से करता रहेगा.

1 Iteration: i की value 1, condition 1 <= 5 true, f = 1 * 1 = 1 और i की value increment होकर 2 हो जाएगी.

2 Iteration: i की value 2, condition 2 <= 5 true, f = 1 * 2 = 2 और i की value increment होकर 3 हो जाएगी.

3 Iteration: i की value 3, condition 3 <= 5 true, f = 2 *3 = 6 और i की value increment होकर 4 हो जाएगी.

4 Iteration: i की value 4, condition 4 <= 5 true, f = 6 * 4 = 24 और i की value increment होकर 5 हो जाएगी.

5 Iteration: i की value 5, condition 5 <= 5 true, f = 24 * 5 = 120 और i की value increment होकर 6 हो जाएगी और फिर condition 6 <= 5 false हो जाएगी.

जैसा की आप ऊपर सभी iteration में देख सकते हो की variable f की value हर iteration पर change हो रही है और last में उसके जो final value है वो variable n का factorial है जिसे loop से बाहर हमने print करा दिया है.

Find Factorial of a Number Program in C using While Loop

While loop से factorial find करने के C program का logic लगभग for loop जैसा ही होता है इसलिए मैं यहाँ logic ना समझा कर सिर्फ program बना रहा हूँ.

#include<stdio.h>
int main()
{
    int i=1,n,f=1;

    printf("Enter a Number : ");
    scanf("%d",&n);

    while(i<=n)
    {
        f=f*i;
        i++;
    }

    printf("Factorial of %d is %d",n,f);

    return 0;
}

Output:

Enter a Number : 5
Factorial of 5 is 120

Find Factorial of a Number Program in C using Function

जब हमें अपने C program में अलग-अलग जगह पर बार-बार किसी number का factorial find करना हो तब हम factorial find करने का code हर जगह पर बार-बार लिखने की बजाय हम एक factorial find करने का function बना लेते हैं.

हमने factorial find करने के लिए हमने function with return type with parameter बनाया है. 

इसलिए जब हम इस function को call करेंगे तब हम एक number argument pass करेंगे और हमारा function उसका factorial find करके उसे return कर देगा.

#include<stdio.h>
int fact(int n);
int main()
{
    int n,f;

    printf("Enter a Number : ");
    scanf("%d",&n);

    f=fact(n);

    printf("Factorial of %d is %d",n,f);

    return 0;
}

int fact(int n)
{
    int i,f=1;

    for(i=1;i<=n;i++)
    {
        f=f*i;
    }

    return f;
}

Output:

Enter a Number : 5
Factorial of 5 is 120

Find Factorial of a Number Program in C using Recursion

जैसा की आप heading पढ़ कर ही समझ गए हो की ये program हमने recursion function से बनाया है और अगर आप नहीं जानते है की recursion क्या है और recursive function कैसे काम करता है तो आप पहले नीचे दिए link पर click करके recursion function के बारे में जरूर पढ़ें.

Read: Recursion in C Programming in Hindi

#include<stdio.h>
int fact(int n);
int main()
{
    int n,f;

    printf("Enter a Number : ");
    scanf("%d",&n);

    f=fact(n);

    printf("Factorial of %d is %d",n,f);

    return 0;
}

int fact(int n)
{
    if(n==1)
    {
        return 1;
    }
    else
    {
        return n*fact(n-1);
    }
}

Output:

Enter a Number : 5
Factorial of 5 is 120

Explanation:

Recursion क्या है और कैसे काम करता है ये तो आपने ऊपर दिए गए tutorial link से पढ़ ही लिया होगा. मैंने नीचे image में सिर्फ fact() function की recursive call को step by step दिखाया है.

Find Factorial of a Number Program in C using Recursion