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
.128013bàuS,3_4l.(wn/R)paPkL0;:hors1*vc25qm!gydjieft =+050O0R0T0s0Q0j0C0U0G0j0s0C0C0V010T0Q0r010406050C0d0K0K0s0B0N040e0A0j0d0;0A0n0U020s0K0r0x0U0p0R0~0B0J0d0R0C050o0{0}0 110_0r041p1w051z0o1z1B1w0_0O0Q0F0)0+0-0/0z0Q0M0z0j1P0z0T0@050!0b0j0R1K0,0.011O1Q1S1Q0T1Y1!1W0T0b0A0O111X0B1x0T0z0)140C0r0s0n0/0H011$1M010S0$0R0n1c0R1W2123281(2b1!2e0K2g040a0U0t0B0A0r0A0C0Q17190Y1 0B0B0R0G2B1p2i0n1x0o1}2N0T1{1`1|0O2k0/1S0n2d2y1W1H1J0*1%2X0Q2Z0n1@1I1W0r2G1x2L2N2^0`22192)292.0B0~0j0@0D2K2|0^2{2j2~1(30320@0H3623382L2W013d0s33040g3h2M0_3k3b0/3n3p0i3s3j2|3l3y0@0I3B1y2?1p2%2Q0O2U3l0G1@2q0X1I1x2=0R2@373I3R0Y3Z3a1L1(0u0@0Y0S3I3v3*0/0m0@0U3:3D3w3m0S0@0S0s2I0A0B0Q0R0j1!3`3)2*010?040l492}3=3m0@0n4g3l4d0q0y3B060U4t3_3;4b0n0@2G0{0j0!0T3B4v3{4i0A0@0V4F394h4b0K0Q344M4w290G0D0@030U0C14160Q180U2x0d0B0U0w0L0U0Z0U0D0L4r4u4G4a293,040S434T4H4x3 410T0R4,524|1(0A3@042,5a4O2 0b4z230M0R4m3|4d4f1q3!4U1(4Q3f5p4i4d0f5h3E4k5z4b4J040W5G295x04355t3i4N4n0@4p4_4`4u5S3|4y044A0d4C0s4E5Q2M4{5i5c4K5D5!4z1n5(4D5=4I0@0E5{544 56580B5W4t5Z4i4~2G0T4,4l5,045.5E5$5^5)5+2^0_0o3$3Y3J6q0o3M1p0T3O6v2S2O1?1^2Q0s1Z6s3M1v3(5/0/2G0K0h400u0R0h0z0g0@1h1j1l1n0U4q6e1y381w0v003o0M432A0z2p0U2G0F450n0T0U0c0)3o0G5(0R4-0{0G0G1n2z0F1i2d6`4@0f4*0d0Q0(0H4:0k7k0U0P0d0C1l006|0n4^1C386t0Z0#0%04.