Factorial Program
Factorial क्या है
किसी number n का factorial (n! लिखा जाता है) 1 से n तक की सारी पूर्ण संख्याओं का गुणनफल है। जैसे 5! = 1 × 2 × 3 × 4 × 5 = 120। हम इसे Python में loop, recursion, या built-in function से निकाल सकते हैं।
0! = 1। आपके code को n के 0 होने पर 1 return करना चाहिए।Loop से factorial
n = 5
f = 1
for i in range(1, n + 1):
f = f * i
print("Factorial:", f)
हम f को 1 से शुरू करते हैं और उसे 1 से n तक हर number से गुणा करते हैं। range(1, n+1) 1, 2, 3, 4, 5 जाता है — +1 पर ध्यान दीजिए ताकि n शामिल हो।
Loop का dry run
| i (range 1 to 5) | f * i | f अब |
|---|---|---|
| 1 | 1 * 1 | 1 |
| 2 | 1 * 2 | 2 |
| 3 | 2 * 3 | 6 |
| 4 | 6 * 4 | 24 |
| 5 | 24 * 5 | 120 |
| Loop ख़त्म। Factorial = 120 | ||
f 1 से शुरू होता है और बारी-बारी हर number से गुणा होता है (1×1×2×3×4×5)। range(1, n+1) 1 से n तक चलता है। 5! = 120।
Recursion से factorial
Recursion यानी एक function जो खुद को छोटी value के साथ call करता है।
def factorial(n):
if n == 0: # base case
return 1
return n * factorial(n - 1)
print(factorial(5))
factorial(5) बनता है 5 × factorial(4), फिर 4 × factorial(3), नीचे factorial(0) तक जो 1 return करता है। फिर results वापस गुणा होकर 120 तक पहुँचते हैं।
math.factorial इस्तेमाल
असली code के लिए, Python में पहले से factorial function है।
import math
print(math.factorial(5))
math.factorial सबसे तेज़ और सुरक्षित विकल्प है। आप अपना loop या recursion मुख्यतः यह समझने को लिखते हैं कि यह कैसे काम करता है।
आम गलतियाँ
- गलत range।
range(1, n+1)इस्तेमाल कीजिए;+1बिना आप n को ही चूक जाते हैं। - f को 0 से शुरू करना। 1 से शुरू कीजिए — 0 से गुणा करने पर हमेशा 0 मिलता है।
- Recursion में base case भूलना।
if n == 0: return 1बिना recursion कभी नहीं रुकती। - बड़े numbers पर recursion। बहुत बड़ा n Python की recursion limit छू सकता है — loop या
math.factorialइस्तेमाल कीजिए।
सारांश
- Factorial n! 1 से n तक की सारी पूर्ण संख्याओं का गुणनफल है।
- Loop से: f को 1 से शुरू कीजिए और
range(1, n+1)के हर i से गुणा कीजिए। - Recursion से:
n * factorial(n-1), base case0! = 1। - असली code के लिए,
math.factorial(n)इस्तेमाल कीजिए। - याद रखिए 0! = 1 और factorials बहुत तेज़ी से बढ़ते हैं।
आगे, आज़माइए prime number program, या दोहराइए Python loops।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
Factorial क्या है?
0 का factorial क्या है?
Factorial के लिए loop या recursion — क्या बेहतर है?
क्या Python में built-in factorial है?
math.factorial(n) सीधे factorial लौटाता है। यह असली code के लिए सबसे तेज़ और सुरक्षित विकल्प है — आप अपना loop या recursion सिर्फ़ यह सीखने को लिखते हैं कि यह कैसे काम करता है।