Factorielle d’un entier (1)

Série d'exercices

Cet exercice fait partie d'une série :

Nombre de façons de diffuser 10 chansons

Un DJ dispose de seulement \(10\) chansons. Il souhaite pouvoir les diffuser en soirée, mais toujours dans un ordre différent. Pendant combien de temps pourra-t-il exercer sans retomber sur un ordre qu'il a déjà joué ?

Pour sa première chanson, il a le choix entre une de ses \(10\) chansons. Par la suite, quelle que soit la première chanson choisie, il aura le choix entre les \(9\) chansons restantes, puis \(8\) chansons pour la troisième chanson, et ainsi de suite...

Il y a donc \(10 \times 9 \times 8 \times 7 \times 6 \times 5 \times 4 \times 3 \times 2 \times 1 = 3\,628\,800\) ordres possibles pour \(10\) chansons, soit près de \(10\,000\) ans de soirées.

Factorielle

La factorielle d'un entier naturel \(n\), noté \(n!\), est le produit des nombres entiers strictement positifs qui sont inférieurs ou égaux à \(n\).

Soit: \(n! = n\times (n-1)\times...\times 4 \times 3 \times 2\times 1\)

ou bien : \(n! = 1 \times 2 \times 3 \times 4 \times... \times (n-1) \times n\)

Ainsi :

  • \(0! = 1\) (par convention)
  • \(1! = 1\) (c'est un produit avec \(1\) comme seul facteur)
  • \(2! = 1×2 = 2\)
  • \(3! = 1×2×3 = 6\)
  • \(4! = 1×2×3×4 = 24\)

Exemple

Dans l'exemple précédent, la factorielle de \(10\) exprime le nombre de permutations ou d'ordres possibles des \(10\) chansons.

Il y a donc \(10! = 3\,628\,800\) façons de d'ordonner ces \(10\) chansons.

Écrire la fonction factorielle qui prend en paramètre un nombre entier positif n et qui renvoie la factorielle de ce nombre.

Contrainte

Le module math est désactivé pour cet exercice.

Exemples
>>> factorielle(5)
120
>>> factorielle(10)
3628800
###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10
.1280133Sytbi,*q)f4_dugj:k!he sPar(5.lRLàvow21/m+n0p;=c050o0w0e0A0g0F0y0x0W0F0A0y0y0V010e0g0T010406050y0p0P0P0A0B0d040c0K0F0p0;0K0R0x020A0P0T0U0x0G0w0~0B0j0p0w0y050O0{0}0 110_0T041p1w051z0O1z1B1w0_0o0g0J0)0+0-0/0v0g0q0v0F1P0v0e0@050!0f0F0w1K0,0.011O1Q1S1Q0e1Y1!1W0e0f0K0o111X0B1x0e0v0)140y0T0A0R0/0M011$1M010l0$0w0R1c0w1W2123281(2b1!2e0P2g040a0x0z0B0K0T0K0y0g17190Y1 0B0B0w0W2B1p2i0R1x0O1}2N0e1{1`1|0o2k0/1S0R2d2y1W1H1J0*1%2X0g2Z0R1@1I1W0T2G1x2L2N2^0`22192)292.0B0~0F0@0N2K2|0^2{2j2~1(30320@0M3623382L2W013d0A33040b3h2M0_3k3b0/3n3p0m3s3j2|3l3y0@0D3B1y2?1p2%2Q0o2U3l0W1@2q0X1I1x2=0w2@373I3R0Y3Z3a1L1(0t0@0Y0l3I3v3*0/0L0@0x3:3D3w3m0l0@0l0A2I0K0B0g0w0F1!3`3)2*010?040C492}3=3m0@0R4g3l4d0k0s3B060x4t3_3;4b0R0@2G0{0F0!0e3B4v3{4i0K0@0V4F394h4b0P0g344M4w290W0N0@030x0y14160g180x2x0p0B0x0S0u0x0Z0x0N0u4r4u4G4a293,040l434T4H4x3 410e0w4,524|1(0K3@042,5a4O2 0f4z230q0w4m3|4d4f1q3!4U1(4Q3f5p4i4d0h5h3E4k5z4b4J040Q5G295x04355t3i4N4n0@4p4_4`4u5S3|4y044A0p4C0A4E5Q2M4{5i5c4K5D5!4z1n5(4D5=4I0@0i5{544 56580B5W4t5Z4i4~2G0e4,4l5,045.5E5$5^5)5+2^0_0O3$3Y3J6q0O3M1p0e3O6v2S2O1?1^2Q0A1Z6s3M1v3(5/0/2G0P0n400t0w0n0v0b0@1h1j1l1n0x4q6e1y381w0H003o0q432A0v2p0x2G0J450R0e0x0I0)3o0W5(0w4-0{0W0W1n2z0J1i2d6`4@0h4*0p0g0(0M4:0E7k0x0r0p0y1l006|0R4^1C386t0Z0#0%04.