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
.128013s3o_;bcdufvg/0lyàq napS!.r1Lmeh,(P2=4:+jtwki5R*)050i0E0P0v0S0p0b0t0h0p0v0b0b0K010P0S0w010406050b0j0D0D0v0A0q040x0d0p0j0;0d0u0t020v0D0w0f0t0U0E0~0A0s0j0E0b050n0{0}0 110_0w041p1w051z0n1z1B1w0_0i0S0l0)0+0-0/0F0S0m0F0p1P0F0P0@050!0g0p0E1K0,0.011O1Q1S1Q0P1Y1!1W0P0g0d0i111X0A1x0P0F0)140b0w0v0u0/0J011$1M010k0$0E0u1c0E1W2123281(2b1!2e0D2g040a0t0I0A0d0w0d0b0S17190Y1 0A0A0E0h2B1p2i0u1x0n1}2N0P1{1`1|0i2k0/1S0u2d2y1W1H1J0*1%2X0S2Z0u1@1I1W0w2G1x2L2N2^0`22192)292.0A0~0p0@0B2K2|0^2{2j2~1(30320@0J3623382L2W013d0v33040c3h2M0_3k3b0/3n3p0L3s3j2|3l3y0@0T3B1y2?1p2%2Q0i2U3l0h1@2q0X1I1x2=0E2@373I3R0Y3Z3a1L1(0R0@0Y0k3I3v3*0/0Q0@0t3:3D3w3m0k0@0k0v2I0d0A0S0E0p1!3`3)2*010?040H492}3=3m0@0u4g3l4d0W0M3B060t4t3_3;4b0u0@2G0{0p0!0P3B4v3{4i0d0@0K4F394h4b0D0S344M4w290h0B0@030t0b14160S180t2x0j0A0t0o0y0t0Z0t0B0y4r4u4G4a293,040k434T4H4x3 410P0E4,524|1(0d3@042,5a4O2 0g4z230m0E4m3|4d4f1q3!4U1(4Q3f5p4i4d0G5h3E4k5z4b4J040N5G295x04355t3i4N4n0@4p4_4`4u5S3|4y044A0j4C0v4E5Q2M4{5i5c4K5D5!4z1n5(4D5=4I0@0V5{544 56580A5W4t5Z4i4~2G0P4,4l5,045.5E5$5^5)5+2^0_0n3$3Y3J6q0n3M1p0P3O6v2S2O1?1^2Q0v1Z6s3M1v3(5/0/2G0D0e400R0E0e0F0c0@1h1j1l1n0t4q6e1y381w0C003o0m432A0F2p0t2G0l450u0P0t0r0)3o0h5(0E4-0{0h0h1n2z0l1i2d6`4@0G4*0j0S0(0J4:0z7k0t0O0j0b1l006|0u4^1C386t0Z0#0%04.