Citation :
salut LeDino, le dernier chiffre non nul de 15! est 8
Exact.
Je suis parti d'une analyse trop superficielle.
J'ai considéré que le produit des derniers chiffres suffisait pour déterminer le chiffre suivant.
Or c'est faux : dernier(14!) = 2 * 15 donne 30 qui donne 3
Il faut garder les deux derniers chiffres : deuxderniers(14!) = 12 * 15 donne 180 qui donne 8
J'ai modifié le programme de façon à travailler sur les deux derniers chiffres...
dernier = 1
for d in range(0,10):
for u in range(0,10):
i = 1 + u + 10*d
dernier = dernier * i
if (dernier%10 == 0) : dernier = dernier//10
if (dernier%10 == 0) : dernier = dernier//10
dernier = dernier - int(dernier/100)*100
print(i), ":", dernier - int(dernier/10)*10, " ",
print(" ")
1 : 1 2 : 2 3 : 6 4 : 24 5 : 12 6 : 72 7 : 4 8 : 32 9 : 88 10 : 88
11 : 68 12 : 16 13 : 8 14 : 12 15 : 18 16 : 88 17 : 96 18 : 28 19 : 32 20 : 64
21 : 44 22 : 68 23 : 64 24 : 36 25 : 9 26 : 34 27 : 18 28 : 4 29 : 16 30 : 48
31 : 88 32 : 16 33 : 28 34 : 52 35 : 82 36 : 52 37 : 24 38 : 12 39 : 68 40 : 72
41 : 52 42 : 84 43 : 12 44 : 28 45 : 26 46 : 96 47 : 12 48 : 76 49 : 24 50 : 12
51 : 12 52 : 24 53 : 72 54 : 88 55 : 84 56 : 4 57 : 28 58 : 24 59 : 16 60 : 96
61 : 56 62 : 72 63 : 36 64 : 4 65 : 26 66 : 16 67 : 72 68 : 96 69 : 24 70 : 68
71 : 28 72 : 16 73 : 68 74 : 32 75 : 24 76 : 24 77 : 48 78 : 44 79 : 76 80 : 8
81 : 48 82 : 36 83 : 88 84 : 92 85 : 82 86 : 52 87 : 24 88 : 12 89 : 68 90 : 12
91 : 92 92 : 64 93 : 52 94 : 88 95 : 36 96 : 56 97 : 32 98 : 36 99 : 64 100: 64
Donc 4 serait le dernier chiffre cherché.