C'est toujours de l'ordre de quelques secondes, j'ai sur mon bureau un pocket BASIC qui, pour calculer 69! utilise un temps de l'ordre de quelques minutes.babaorhum a écrit : Mais 69! est calculé en ... 13,5s (car le test est désormais dans la boucle) mais c'est hors cahier des charges !
Mais, ce mêm pocket se débrouille bien pour calculer avec précision :
Code : Tout sélectionner
10: "F" AREAD N:H=0,G=0,F=1
20:FOR I=1 TO N:F=FI:G=GI:H=HI
30: IF F>|E8 LET R=INT |E-8F,G=G+R,F=F-|E8R
40: IF G>[E8 LET R=INT |E-8G,H=H+R,G=G-|E8R
50:NEXT I
60:PRINT USING "####";N;"!=";USING "#########";H;G;F:END
17!= 3556874 28096000.
18!= 64023737 05728000.
19!= 12 16451004 08832000.
20!= 243 29020081 76640000.
21!= 5109 94211717 09440000.
22!= 112400 07277776 07680000.
23!= 2585201 67388849 76640000.
24!= 62044840 17332394 39360000.
25!=1551121004 33309859 84000000. (34.2s)
69!= 171 12245242 81413113 72468338 88127283 90922705 44893520 36939364 80409232 57279754 14064742 40000000 00000000 (~10.1min)