Aller au contenu

Nombre de zéros de n factoriel ; n petit⚓︎

On rappelle que, pour \(n\) un entier naturel, la factorielle de \(n\) se note \(n!\) et se définit comme le produit des entiers de \(1\) à \(n\).

  • \(0! = 1\), comme un produit vide.
  • \(1! = 1\)
  • \(2! = 1×2 = 2\)
  • \(3! = 1×2×3 = 6\)
  • \(11! = 1×2×3×4×5×6×7×8×9×10×11 = 39916800\)
  • \(42! = 1405006117752879898543142606244511569936384000000000\)

On constate que

  • \(3!\) se termine par aucun zéro.
  • \(11!\) se termine par 2 zéros.
  • \(42!\) se termine par 9 zéros.

Construire un tableau de longueur 1000, tel que nb_zeros_factorielle[n] contient le nombre de zéros dans l'écriture décimale de \(n!\), pour \(n\) entier inférieur à \(1000\).

Exemples
🐍 Console Python
>>> nb_zeros_factorielle[3]
0
>>> nb_zeros_factorielle[11]
2
>>> nb_zeros_factorielle[42]
9
>>> len(nb_zeros_factorielle) >= 1000
True
###
# testsbksl-nlbksl-nlassert nbpy-undzerospy-undfactorielle[3] == 0bksl-nlbksl-nlassert nbpy-undzerospy-undfactorielle[11] == 2bksl-nlbksl-nlassert nbpy-undzerospy-undfactorielle[42] == 9bksl-nlbksl-nlassert len(nbpy-undzerospy-undfactorielle) >= 1000bksl-nlbksl-nlbksl-nl# autres testsbksl-nlbksl-nlNBpy-undZEROS = [bksl-nl 0,bksl-nl 0,bksl-nl 0,bksl-nl 0,bksl-nl 0,bksl-nl 1,bksl-nl 1,bksl-nl 1,bksl-nl 1,bksl-nl 1,bksl-nl 2,bksl-nl 2,bksl-nl 2,bksl-nl 2,bksl-nl 2,bksl-nl 3,bksl-nl 3,bksl-nl 3,bksl-nl 3,bksl-nl 3,bksl-nl 4,bksl-nl 4,bksl-nl 4,bksl-nl 4,bksl-nl 4,bksl-nl 6,bksl-nl 6,bksl-nl 6,bksl-nl 6,bksl-nl 6,bksl-nl 7,bksl-nl 7,bksl-nl 7,bksl-nl 7,bksl-nl 7,bksl-nl 8,bksl-nl 8,bksl-nl 8,bksl-nl 8,bksl-nl 8,bksl-nl 9,bksl-nl 9,bksl-nl 9,bksl-nl 9,bksl-nl 9,bksl-nl 10,bksl-nl 10,bksl-nl 10,bksl-nl 10,bksl-nl 10,bksl-nl 12,bksl-nl 12,bksl-nl 12,bksl-nl 12,bksl-nl 12,bksl-nl 13,bksl-nl 13,bksl-nl 13,bksl-nl 13,bksl-nl 13,bksl-nl 14,bksl-nl 14,bksl-nl 14,bksl-nl 14,bksl-nl 14,bksl-nl 15,bksl-nl 15,bksl-nl 15,bksl-nl 15,bksl-nl 15,bksl-nl 16,bksl-nl 16,bksl-nl 16,bksl-nl 16,bksl-nl 16,bksl-nl 18,bksl-nl 18,bksl-nl 18,bksl-nl 18,bksl-nl 18,bksl-nl 19,bksl-nl 19,bksl-nl 19,bksl-nl 19,bksl-nl 19,bksl-nl 20,bksl-nl 20,bksl-nl 20,bksl-nl 20,bksl-nl 20,bksl-nl 21,bksl-nl 21,bksl-nl 21,bksl-nl 21,bksl-nl 21,bksl-nl 22,bksl-nl 22,bksl-nl 22,bksl-nl 22,bksl-nl 22,bksl-nl 24,bksl-nl 24,bksl-nl 24,bksl-nl 24,bksl-nl 24,bksl-nl 25,bksl-nl 25,bksl-nl 25,bksl-nl 25,bksl-nl 25,bksl-nl 26,bksl-nl 26,bksl-nl 26,bksl-nl 26,bksl-nl 26,bksl-nl 27,bksl-nl 27,bksl-nl 27,bksl-nl 27,bksl-nl 27,bksl-nl 28,bksl-nl 28,bksl-nl 28,bksl-nl 28,bksl-nl 28,bksl-nl 31,bksl-nl 31,bksl-nl 31,bksl-nl 31,bksl-nl 31,bksl-nl 32,bksl-nl 32,bksl-nl 32,bksl-nl 32,bksl-nl 32,bksl-nl 33,bksl-nl 33,bksl-nl 33,bksl-nl 33,bksl-nl 33,bksl-nl 34,bksl-nl 34,bksl-nl 34,bksl-nl 34,bksl-nl 34,bksl-nl 35,bksl-nl 35,bksl-nl 35,bksl-nl 35,bksl-nl 35,bksl-nl 37,bksl-nl 37,bksl-nl 37,bksl-nl 37,bksl-nl 37,bksl-nl 38,bksl-nl 38,bksl-nl 38,bksl-nl 38,bksl-nl 38,bksl-nl 39,bksl-nl 39,bksl-nl 39,bksl-nl 39,bksl-nl 39,bksl-nl 40,bksl-nl 40,bksl-nl 40,bksl-nl 40,bksl-nl 40,bksl-nl 41,bksl-nl 41,bksl-nl 41,bksl-nl 41,bksl-nl 41,bksl-nl 43,bksl-nl 43,bksl-nl 43,bksl-nl 43,bksl-nl 43,bksl-nl 44,bksl-nl 44,bksl-nl 44,bksl-nl 44,bksl-nl 44,bksl-nl 45,bksl-nl 45,bksl-nl 45,bksl-nl 45,bksl-nl 45,bksl-nl 46,bksl-nl 46,bksl-nl 46,bksl-nl 46,bksl-nl 46,bksl-nl 47,bksl-nl 47,bksl-nl 47,bksl-nl 47,bksl-nl 47,bksl-nl 49,bksl-nl 49,bksl-nl 49,bksl-nl 49,bksl-nl 49,bksl-nl 50,bksl-nl 50,bksl-nl 50,bksl-nl 50,bksl-nl 50,bksl-nl 51,bksl-nl 51,bksl-nl 51,bksl-nl 51,bksl-nl 51,bksl-nl 52,bksl-nl 52,bksl-nl 52,bksl-nl 52,bksl-nl 52,bksl-nl 53,bksl-nl 53,bksl-nl 53,bksl-nl 53,bksl-nl 53,bksl-nl 55,bksl-nl 55,bksl-nl 55,bksl-nl 55,bksl-nl 55,bksl-nl 56,bksl-nl 56,bksl-nl 56,bksl-nl 56,bksl-nl 56,bksl-nl 57,bksl-nl 57,bksl-nl 57,bksl-nl 57,bksl-nl 57,bksl-nl 58,bksl-nl 58,bksl-nl 58,bksl-nl 58,bksl-nl 58,bksl-nl 59,bksl-nl 59,bksl-nl 59,bksl-nl 59,bksl-nl 59,bksl-nl 62,bksl-nl 62,bksl-nl 62,bksl-nl 62,bksl-nl 62,bksl-nl 63,bksl-nl 63,bksl-nl 63,bksl-nl 63,bksl-nl 63,bksl-nl 64,bksl-nl 64,bksl-nl 64,bksl-nl 64,bksl-nl 64,bksl-nl 65,bksl-nl 65,bksl-nl 65,bksl-nl 65,bksl-nl 65,bksl-nl 66,bksl-nl 66,bksl-nl 66,bksl-nl 66,bksl-nl 66,bksl-nl 68,bksl-nl 68,bksl-nl 68,bksl-nl 68,bksl-nl 68,bksl-nl 69,bksl-nl 69,bksl-nl 69,bksl-nl 69,bksl-nl 69,bksl-nl 70,bksl-nl 70,bksl-nl 70,bksl-nl 70,bksl-nl 70,bksl-nl 71,bksl-nl 71,bksl-nl 71,bksl-nl 71,bksl-nl 71,bksl-nl 72,bksl-nl 72,bksl-nl 72,bksl-nl 72,bksl-nl 72,bksl-nl 74,bksl-nl 74,bksl-nl 74,bksl-nl 74,bksl-nl 74,bksl-nl 75,bksl-nl 75,bksl-nl 75,bksl-nl 75,bksl-nl 75,bksl-nl 76,bksl-nl 76,bksl-nl 76,bksl-nl 76,bksl-nl 76,bksl-nl 77,bksl-nl 77,bksl-nl 77,bksl-nl 77,bksl-nl 77,bksl-nl 78,bksl-nl 78,bksl-nl 78,bksl-nl 78,bksl-nl 78,bksl-nl 80,bksl-nl 80,bksl-nl 80,bksl-nl 80,bksl-nl 80,bksl-nl 81,bksl-nl 81,bksl-nl 81,bksl-nl 81,bksl-nl 81,bksl-nl 82,bksl-nl 82,bksl-nl 82,bksl-nl 82,bksl-nl 82,bksl-nl 83,bksl-nl 83,bksl-nl 83,bksl-nl 83,bksl-nl 83,bksl-nl 84,bksl-nl 84,bksl-nl 84,bksl-nl 84,bksl-nl 84,bksl-nl 86,bksl-nl 86,bksl-nl 86,bksl-nl 86,bksl-nl 86,bksl-nl 87,bksl-nl 87,bksl-nl 87,bksl-nl 87,bksl-nl 87,bksl-nl 88,bksl-nl 88,bksl-nl 88,bksl-nl 88,bksl-nl 88,bksl-nl 89,bksl-nl 89,bksl-nl 89,bksl-nl 89,bksl-nl 89,bksl-nl 90,bksl-nl 90,bksl-nl 90,bksl-nl 90,bksl-nl 90,bksl-nl 93,bksl-nl 93,bksl-nl 93,bksl-nl 93,bksl-nl 93,bksl-nl 94,bksl-nl 94,bksl-nl 94,bksl-nl 94,bksl-nl 94,bksl-nl 95,bksl-nl 95,bksl-nl 95,bksl-nl 95,bksl-nl 95,bksl-nl 96,bksl-nl 96,bksl-nl 96,bksl-nl 96,bksl-nl 96,bksl-nl 97,bksl-nl 97,bksl-nl 97,bksl-nl 97,bksl-nl 97,bksl-nl 99,bksl-nl 99,bksl-nl 99,bksl-nl 99,bksl-nl 99,bksl-nl 100,bksl-nl 100,bksl-nl 100,bksl-nl 100,bksl-nl 100,bksl-nl 101,bksl-nl 101,bksl-nl 101,bksl-nl 101,bksl-nl 101,bksl-nl 102,bksl-nl 102,bksl-nl 102,bksl-nl 102,bksl-nl 102,bksl-nl 103,bksl-nl 103,bksl-nl 103,bksl-nl 103,bksl-nl 103,bksl-nl 105,bksl-nl 105,bksl-nl 105,bksl-nl 105,bksl-nl 105,bksl-nl 106,bksl-nl 106,bksl-nl 106,bksl-nl 106,bksl-nl 106,bksl-nl 107,bksl-nl 107,bksl-nl 107,bksl-nl 107,bksl-nl 107,bksl-nl 108,bksl-nl 108,bksl-nl 108,bksl-nl 108,bksl-nl 108,bksl-nl 109,bksl-nl 109,bksl-nl 109,bksl-nl 109,bksl-nl 109,bksl-nl 111,bksl-nl 111,bksl-nl 111,bksl-nl 111,bksl-nl 111,bksl-nl 112,bksl-nl 112,bksl-nl 112,bksl-nl 112,bksl-nl 112,bksl-nl 113,bksl-nl 113,bksl-nl 113,bksl-nl 113,bksl-nl 113,bksl-nl 114,bksl-nl 114,bksl-nl 114,bksl-nl 114,bksl-nl 114,bksl-nl 115,bksl-nl 115,bksl-nl 115,bksl-nl 115,bksl-nl 115,bksl-nl 117,bksl-nl 117,bksl-nl 117,bksl-nl 117,bksl-nl 117,bksl-nl 118,bksl-nl 118,bksl-nl 118,bksl-nl 118,bksl-nl 118,bksl-nl 119,bksl-nl 119,bksl-nl 119,bksl-nl 119,bksl-nl 119,bksl-nl 120,bksl-nl 120,bksl-nl 120,bksl-nl 120,bksl-nl 120,bksl-nl 121,bksl-nl 121,bksl-nl 121,bksl-nl 121,bksl-nl 121,bksl-nl 124,bksl-nl 124,bksl-nl 124,bksl-nl 124,bksl-nl 124,bksl-nl 125,bksl-nl 125,bksl-nl 125,bksl-nl 125,bksl-nl 125,bksl-nl 126,bksl-nl 126,bksl-nl 126,bksl-nl 126,bksl-nl 126,bksl-nl 127,bksl-nl 127,bksl-nl 127,bksl-nl 127,bksl-nl 127,bksl-nl 128,bksl-nl 128,bksl-nl 128,bksl-nl 128,bksl-nl 128,bksl-nl 130,bksl-nl 130,bksl-nl 130,bksl-nl 130,bksl-nl 130,bksl-nl 131,bksl-nl 131,bksl-nl 131,bksl-nl 131,bksl-nl 131,bksl-nl 132,bksl-nl 132,bksl-nl 132,bksl-nl 132,bksl-nl 132,bksl-nl 133,bksl-nl 133,bksl-nl 133,bksl-nl 133,bksl-nl 133,bksl-nl 134,bksl-nl 134,bksl-nl 134,bksl-nl 134,bksl-nl 134,bksl-nl 136,bksl-nl 136,bksl-nl 136,bksl-nl 136,bksl-nl 136,bksl-nl 137,bksl-nl 137,bksl-nl 137,bksl-nl 137,bksl-nl 137,bksl-nl 138,bksl-nl 138,bksl-nl 138,bksl-nl 138,bksl-nl 138,bksl-nl 139,bksl-nl 139,bksl-nl 139,bksl-nl 139,bksl-nl 139,bksl-nl 140,bksl-nl 140,bksl-nl 140,bksl-nl 140,bksl-nl 140,bksl-nl 142,bksl-nl 142,bksl-nl 142,bksl-nl 142,bksl-nl 142,bksl-nl 143,bksl-nl 143,bksl-nl 143,bksl-nl 143,bksl-nl 143,bksl-nl 144,bksl-nl 144,bksl-nl 144,bksl-nl 144,bksl-nl 144,bksl-nl 145,bksl-nl 145,bksl-nl 145,bksl-nl 145,bksl-nl 145,bksl-nl 146,bksl-nl 146,bksl-nl 146,bksl-nl 146,bksl-nl 146,bksl-nl 148,bksl-nl 148,bksl-nl 148,bksl-nl 148,bksl-nl 148,bksl-nl 149,bksl-nl 149,bksl-nl 149,bksl-nl 149,bksl-nl 149,bksl-nl 150,bksl-nl 150,bksl-nl 150,bksl-nl 150,bksl-nl 150,bksl-nl 151,bksl-nl 151,bksl-nl 151,bksl-nl 151,bksl-nl 151,bksl-nl 152,bksl-nl 152,bksl-nl 152,bksl-nl 152,bksl-nl 152,bksl-nl 156,bksl-nl 156,bksl-nl 156,bksl-nl 156,bksl-nl 156,bksl-nl 157,bksl-nl 157,bksl-nl 157,bksl-nl 157,bksl-nl 157,bksl-nl 158,bksl-nl 158,bksl-nl 158,bksl-nl 158,bksl-nl 158,bksl-nl 159,bksl-nl 159,bksl-nl 159,bksl-nl 159,bksl-nl 159,bksl-nl 160,bksl-nl 160,bksl-nl 160,bksl-nl 160,bksl-nl 160,bksl-nl 162,bksl-nl 162,bksl-nl 162,bksl-nl 162,bksl-nl 162,bksl-nl 163,bksl-nl 163,bksl-nl 163,bksl-nl 163,bksl-nl 163,bksl-nl 164,bksl-nl 164,bksl-nl 164,bksl-nl 164,bksl-nl 164,bksl-nl 165,bksl-nl 165,bksl-nl 165,bksl-nl 165,bksl-nl 165,bksl-nl 166,bksl-nl 166,bksl-nl 166,bksl-nl 166,bksl-nl 166,bksl-nl 168,bksl-nl 168,bksl-nl 168,bksl-nl 168,bksl-nl 168,bksl-nl 169,bksl-nl 169,bksl-nl 169,bksl-nl 169,bksl-nl 169,bksl-nl 170,bksl-nl 170,bksl-nl 170,bksl-nl 170,bksl-nl 170,bksl-nl 171,bksl-nl 171,bksl-nl 171,bksl-nl 171,bksl-nl 171,bksl-nl 172,bksl-nl 172,bksl-nl 172,bksl-nl 172,bksl-nl 172,bksl-nl 174,bksl-nl 174,bksl-nl 174,bksl-nl 174,bksl-nl 174,bksl-nl 175,bksl-nl 175,bksl-nl 175,bksl-nl 175,bksl-nl 175,bksl-nl 176,bksl-nl 176,bksl-nl 176,bksl-nl 176,bksl-nl 176,bksl-nl 177,bksl-nl 177,bksl-nl 177,bksl-nl 177,bksl-nl 177,bksl-nl 178,bksl-nl 178,bksl-nl 178,bksl-nl 178,bksl-nl 178,bksl-nl 180,bksl-nl 180,bksl-nl 180,bksl-nl 180,bksl-nl 180,bksl-nl 181,bksl-nl 181,bksl-nl 181,bksl-nl 181,bksl-nl 181,bksl-nl 182,bksl-nl 182,bksl-nl 182,bksl-nl 182,bksl-nl 182,bksl-nl 183,bksl-nl 183,bksl-nl 183,bksl-nl 183,bksl-nl 183,bksl-nl 184,bksl-nl 184,bksl-nl 184,bksl-nl 184,bksl-nl 184,bksl-nl 187,bksl-nl 187,bksl-nl 187,bksl-nl 187,bksl-nl 187,bksl-nl 188,bksl-nl 188,bksl-nl 188,bksl-nl 188,bksl-nl 188,bksl-nl 189,bksl-nl 189,bksl-nl 189,bksl-nl 189,bksl-nl 189,bksl-nl 190,bksl-nl 190,bksl-nl 190,bksl-nl 190,bksl-nl 190,bksl-nl 191,bksl-nl 191,bksl-nl 191,bksl-nl 191,bksl-nl 191,bksl-nl 193,bksl-nl 193,bksl-nl 193,bksl-nl 193,bksl-nl 193,bksl-nl 194,bksl-nl 194,bksl-nl 194,bksl-nl 194,bksl-nl 194,bksl-nl 195,bksl-nl 195,bksl-nl 195,bksl-nl 195,bksl-nl 195,bksl-nl 196,bksl-nl 196,bksl-nl 196,bksl-nl 196,bksl-nl 196,bksl-nl 197,bksl-nl 197,bksl-nl 197,bksl-nl 197,bksl-nl 197,bksl-nl 199,bksl-nl 199,bksl-nl 199,bksl-nl 199,bksl-nl 199,bksl-nl 200,bksl-nl 200,bksl-nl 200,bksl-nl 200,bksl-nl 200,bksl-nl 201,bksl-nl 201,bksl-nl 201,bksl-nl 201,bksl-nl 201,bksl-nl 202,bksl-nl 202,bksl-nl 202,bksl-nl 202,bksl-nl 202,bksl-nl 203,bksl-nl 203,bksl-nl 203,bksl-nl 203,bksl-nl 203,bksl-nl 205,bksl-nl 205,bksl-nl 205,bksl-nl 205,bksl-nl 205,bksl-nl 206,bksl-nl 206,bksl-nl 206,bksl-nl 206,bksl-nl 206,bksl-nl 207,bksl-nl 207,bksl-nl 207,bksl-nl 207,bksl-nl 207,bksl-nl 208,bksl-nl 208,bksl-nl 208,bksl-nl 208,bksl-nl 208,bksl-nl 209,bksl-nl 209,bksl-nl 209,bksl-nl 209,bksl-nl 209,bksl-nl 211,bksl-nl 211,bksl-nl 211,bksl-nl 211,bksl-nl 211,bksl-nl 212,bksl-nl 212,bksl-nl 212,bksl-nl 212,bksl-nl 212,bksl-nl 213,bksl-nl 213,bksl-nl 213,bksl-nl 213,bksl-nl 213,bksl-nl 214,bksl-nl 214,bksl-nl 214,bksl-nl 214,bksl-nl 214,bksl-nl 215,bksl-nl 215,bksl-nl 215,bksl-nl 215,bksl-nl 215,bksl-nl 218,bksl-nl 218,bksl-nl 218,bksl-nl 218,bksl-nl 218,bksl-nl 219,bksl-nl 219,bksl-nl 219,bksl-nl 219,bksl-nl 219,bksl-nl 220,bksl-nl 220,bksl-nl 220,bksl-nl 220,bksl-nl 220,bksl-nl 221,bksl-nl 221,bksl-nl 221,bksl-nl 221,bksl-nl 221,bksl-nl 222,bksl-nl 222,bksl-nl 222,bksl-nl 222,bksl-nl 222,bksl-nl 224,bksl-nl 224,bksl-nl 224,bksl-nl 224,bksl-nl 224,bksl-nl 225,bksl-nl 225,bksl-nl 225,bksl-nl 225,bksl-nl 225,bksl-nl 226,bksl-nl 226,bksl-nl 226,bksl-nl 226,bksl-nl 226,bksl-nl 227,bksl-nl 227,bksl-nl 227,bksl-nl 227,bksl-nl 227,bksl-nl 228,bksl-nl 228,bksl-nl 228,bksl-nl 228,bksl-nl 228,bksl-nl 230,bksl-nl 230,bksl-nl 230,bksl-nl 230,bksl-nl 230,bksl-nl 231,bksl-nl 231,bksl-nl 231,bksl-nl 231,bksl-nl 231,bksl-nl 232,bksl-nl 232,bksl-nl 232,bksl-nl 232,bksl-nl 232,bksl-nl 233,bksl-nl 233,bksl-nl 233,bksl-nl 233,bksl-nl 233,bksl-nl 234,bksl-nl 234,bksl-nl 234,bksl-nl 234,bksl-nl 234,bksl-nl 236,bksl-nl 236,bksl-nl 236,bksl-nl 236,bksl-nl 236,bksl-nl 237,bksl-nl 237,bksl-nl 237,bksl-nl 237,bksl-nl 237,bksl-nl 238,bksl-nl 238,bksl-nl 238,bksl-nl 238,bksl-nl 238,bksl-nl 239,bksl-nl 239,bksl-nl 239,bksl-nl 239,bksl-nl 239,bksl-nl 240,bksl-nl 240,bksl-nl 240,bksl-nl 240,bksl-nl 240,bksl-nl 242,bksl-nl 242,bksl-nl 242,bksl-nl 242,bksl-nl 242,bksl-nl 243,bksl-nl 243,bksl-nl 243,bksl-nl 243,bksl-nl 243,bksl-nl 244,bksl-nl 244,bksl-nl 244,bksl-nl 244,bksl-nl 244,bksl-nl 245,bksl-nl 245,bksl-nl 245,bksl-nl 245,bksl-nl 245,bksl-nl 246,bksl-nl 246,bksl-nl 246,bksl-nl 246,bksl-nl 246,bksl-nl]bksl-nlbksl-nlfor n, attendu in enumerate(NBpy-undZEROS):bksl-nl assert nbpy-undzerospy-undfactorielle[n] == attendu, f"Erreur avec n = {n}"bksl-nlbksl-nl ∞/∞

nbpy-undzerospy-undfactorielle = [...]bksl-nl...bksl-nlbksl-nlbksl-nl# testsbksl-nlbksl-nlassert nbpy-undzerospy-undfactorielle[3] == 0bksl-nlbksl-nlassert nbpy-undzerospy-undfactorielle[11] == 2bksl-nlbksl-nlassert nbpy-undzerospy-undfactorielle[42] == 9bksl-nlbksl-nlassert len(nbpy-undzerospy-undfactorielle) >= 1000bksl-nlbksl-nlnbpy-undzerospy-undfactorielle = [0]bksl-nlbksl-nlbksl-nldef nbpy-undzeros(n):bksl-nl resultat = 0bksl-nl while n % 10 == 0:bksl-nl n //= 10bksl-nl resultat += 1bksl-nl return resultatbksl-nlbksl-nlbksl-nlfactorielle = 1bksl-nlfor n in range(1, 1000):bksl-nl factorielle py-str= nbksl-nl suivant = nbpy-undzeros(factorielle)bksl-nl nbpy-undzerospy-undfactorielle.append(suivant)bksl-nlbksl-nl

A

Ici, on appelle la fonction nb_zeros sur un nombre factoriel qui est très grand.

Version efficace⚓︎

🐍 Script Python
def nb_facteurs_5(n):
    resultat = 0
    while n % 5 == 0:
        n //= 5
        resultat += 1
    return resultat

nb_zeros_factorielle = [0]

for n in range(1, 1000):
    apport = nb_facteurs_5(n)
    suivant = nb_zeros_factorielle[n-1] + apport
    nb_zeros_factorielle.append(suivant)

Cette version ressemble beaucoup à la précédente ; presque la même fonction.

La différence essentielle est qu'ici nb_facteurs est appelé avec un nombre petit en paramètre.

À méditer. Cette différence subtile est très importante. Ici, on gagne sérieusement en efficacité grâce à la taille réduite du paramètre dont le cout est plus faible à traiter.

Z

Indice 1

Pour une version facile, on pourra utiliser une fonction qui renvoie le nombre de zéros d'un entier, on passera en argument la factorielle d'un entier.

Après avoir réussi. Tenter une version efficace avec l'indice 2.

Indice 2

Pour une version efficace, on cherchera à calculer l'augmentation du nombre de zéros, d'une factorielle à une autre, en fonction du nouveau facteur. Il s'agit du nombre de fois que l'on peut diviser par 5 ce nouveau facteur.