En fait XEQ GOSUB et GSB même poisse.
Je décompile donc mon code et propose celui-ci :
Code : Tout sélectionner
001 LBL "MRA
002 RCl X 2 MOD x=0? GTO 01 RDN
008 RCl X 3 MOD x=0? GTO 01 RDN
014 RCL X 5 MOD x=0? GTO 01 RDN
020 RCl X 7 MOD x=0? GTO 01 RDN
026 LBL 00
027 RCL X 4 LastX + MOD x=0? GTO 01 RDN
035 RCL X 2 LastX + MOD x=0? GTO 01 RDN
043 RCL X 4 LastX + MOD x=0? GTO 01 RDN
051 RCL X 2 LastX + MOD x=0? GTO 01 RDN
059 RCL X 4 LastX + MOD x=0? GTO 01 RDN
067 RCL X 6 LastX + MOD x=0? GTO 01 RDN
075 RCL X 2 LastX + MOD x=0? GTO 01 RDN
083 RCL X 6 LastX + MOD x=0? GTO 01 RDN
091 LastX x^2 X<>Y x>y? GTO 00
096 STO L
097 LBL 01
098 LastX TONE 1
100 STOP
.END.
Ce qui donne le petit résumé des performances suivantes:
Code : Tout sélectionner
zpalm zpalm C.Ret C.Ret C.Ret gégé alain1261 caloubugs
HP-41CX HP-29E C128D HP-41C HP-28S PB-700 PB-100 TI-95
1231 3"58 "1 3"2 "4 1"5
2007 "90 "1 1"4 "4
71327 21"33 24"8 "8 18"8 2"2 27" 3" 7"
123679 26"27 29"9 "9 22"7 3"0 5" 8"
1000003 1'17"80 1'28"5 2"7 1'07"7 5"9 1'19" 14" 23"
2100151 2"85 "1 3"2 "7
8043509 3'13"64 3'41"9 6"7 2'47"8 14"1 3'14"
10000019 4'02"71 4'36"7 8"4 3'30"7 18"9 2'06"
31629593 7'10"40 8'11"0 14"8 6'13"5 31"8
998812807 1'23"0 3'00"4
999999937 1'23"2 35'08" 3'00"7 11'45"
Code : Tout sélectionner
MRAs:
« « IF DUP2 MOD NOT THEN KILL END » → TEST
« 2 TEST EVAL 1 + TEST EVAL 2 + TEST EVAL 2 + TEST EVAL
DO
4 + TEST EVAL 2 + TEST EVAL 4 + TEST EVAL 2 + TEST EVAL
4 + TEST EVAL 6 + TEST EVAL 2 + TEST EVAL 6 + TEST EVAL
UNTIL DUP2 SQ < END
DROP » »
Code : Tout sélectionner
MRA:
« 2 IF DUP2 MOD NOT THEN KILL END
1 + IF DUP2 MOD NOT THEN KILL END
2 + IF DUP2 MOD NOT THEN KILL END
2 + IF DUP2 MOD NOT THEN KILL END
DO
4 + IF DUP2 MOD NOT THEN KILL END
2 + IF DUP2 MOD NOT THEN KILL END
4 + IF DUP2 MOD NOT THEN KILL END
2 + IF DUP2 MOD NOT THEN KILL END
4 + IF DUP2 MOD NOT THEN KILL END
6 + IF DUP2 MOD NOT THEN KILL END
2 + IF DUP2 MOD NOT THEN KILL END
6 + IF DUP2 MOD NOT THEN KILL END
UNTIL DUP2 SQ < END
DROP
»
Sans surprise, cette dernière version est plus rapide, 999999937 est résolu en 3'00" au lieu de 3'45" avec la version compacte.
En cours, BASIC : TI-74, PC-1360 et PC-1211