În matematică factorialul unui număr întreg pozitiv n
este notat cu n!
și este egal cu produsul numerelor naturale mai mici sau egale cu n
. Prin definiție, 0!=1
.
Factorialul unui număr oarecare n
indică numărul de permutări (numărul de posibilități de rearanjare) ale unei mulțimi finite având n
elemente.
Definiții
Factorialul poate fi definit:
- iterativ: \( n! = 1 \cdot 2 \cdot 3 \cdot \cdots \cdot n \), \(0!=1\)
- recursiv: \( n! = \begin{cases}
1& \text{dacă } n = 0 ,\\
n \cdot (n-1)! & \text{altfel}.
\end{cases} \)
Observații
Obs. 1: Factorialul crește foarte repede. Pentru valori mici ale lui n
, valoarea lui n!
depășește tipurile de date standard:
0! = 1 1! = 1 2! = 2 3! = 6 4! = 24 5! = 120 6! = 720 7! = 5040 8! = 40320 9! = 362880 10! = 3628800 11! = 39916800 12! = 479001600 13! = 6227020800 -> depaseste tipul int 14! = 87178291200 15! = 1307674368000 16! = 20922789888000 17! = 355687428096000 18! = 6402373705728000 19! = 121645100408832000 20! = 2432902008176640000 21! = 51090942171709440000 -> depaseste tipul long long int
Obs. 2: Pentru n≥5
, ultima cifră a lui n!
este 0
.
Cifra 0
de la finalul unui produs, provine din 2*5
. Numărul de zerouri de la finalul unui este egal cu minimul dintre exponentul lui 2
și exponentul lui 5
în descompunerea în factori prim a produsului, aceasta obținându-se din descompunerea în factori prim a fiecărui factor. În cazul lui n!
, numărul de zerouri de la final este egal cu exponentul lui 5
în descompunerea în factori. El poate fi determinat astfel:
Obs. 3: Numărul de zerouri de la finalul lui n!
este egal cu \( [\frac {n}{5}] + [\frac {n}{5^2}] + [\frac {n}{5^3}] + \cdots\ + [\frac {n}{5^k}] + \cdots \), unde \( [x] \) reprezintă partea întreagă a numărului real \( x \). Pentru \( k \) suficient de mare \( 5^k > n\) și \( [\frac {n}{5^k}] \) devine 0
.
O sursă C++ care determină rezultatul este:
#include <iostream> using namespace std; int main() { int n, p = 5, s = 0; cin >> n; while(p <= n) s += n / p, p *= 5; cout << s; return 0; }
Observația de mai sus este o consecință a:
Obs. 4: Pentru un n
dat și un număr prim p
, exponentul lui p
în descompunerea în factori primi a lui n!
este \( [\frac {n}{p}] + [\frac {n}{p^2}] + [\frac {n}{p^3}] + \cdots\ + [\frac {n}{p^k}] + \cdots \), rezultat cunoscut ca formula lui Legendre.
O scriere alternativă este dată în următoarea observație:
Obs. 5: Pentru un n
dat și un număr prim p
, exponentul lui p
în descompunerea în factori primi a lui n!
este \( \frac {n-s_{p}(n)}{p-1}\), unde \( s_{p}(n)\) reprezintă suma cifrelor reprezentării în baza p
a numărului n
.
Pentru mai multe informații, vizitați pagina Factorial – Wikipedia.