Toujours en suivant l'algorithme de
Ledudu et en m'inspirant du code de
zpalm, je suis en mesure de proposer un code pour HP-41C n'utilisant aucun module exotique, ou module mémoire supplémentaire.
J'effectue le chronométrage comme pour mon SHARP PC-1211 à l'aide d'un chronomètre manuel et de l'instruction TONE 1 qui émet un <bip>
Code : Tout sélectionner
ST PRGM STACK Comments
t: z: y: x:
01 LBL "MPO78" . . . L
02 10^x 2
04 LBL 00 . . pL n ** DISPLAY n **
05 STO Z 10 * x<=y? GTO 01
10 LastX ST* Z RDN TONE 1 VIEW Z
15 LBL 01 . . pL 10n ** 10n+1 **
16 1 ST+ Y RCL X
19 LBL 02 pL n f . ** ISPRIME ? **
20 RDN 2 + RDN STO Y R^ / lastX x<>y
29 FRC x=0? GTO 03 ** n is composite -> next n
32 X<> L x>y? GTO 02 ** continue test
35 RDN RDN GTO 00 ** n is prime -> display
38 LBL 03 pL n . . ** TEST 9 SUFFIX LOOP **
39 RDN RDN INT RCL X
43 10 MOD 9 x#y? GTO 04 ** no 9 suffix --> NEXT n
48 RDN LastX ST/ Z ** else n <-- INT(n/10)
51 GTO 03
52 LBL 04 pL n i 9 ** NEXT n **
53 SIGN ST+Z ST+Z x<>y
57 GTO 02 pL n+2 1 .
Code : Tout sélectionner
01 LBL "MPO78" 10^x 2
04 LBL 00 STO Z 10 * x<=y? GTO 01 LastX ST* Z RDN TONE 1 VIEW Z
15 LBL 01 1 ST+ Y RCL X
19 LBL 02 RDN 2 + RDN STO Y R^ / lastX x<>y FRC x=0? GTO 03 X<> L x>y? GTO 02 RDN RDN GTO 00
38 LBL 03 RDN RDN INT RCL X 10 MOD 9 x#y? GTO 04 RDN LastX ST/ Z GTO 03
52 LBL 04 SIGN ST+Z ST+Z x<>y
57 GTO 02
J'obtiens les temps suivants:
Code : Tout sélectionner
1.04s 2.0000
4.00s 23.0000
7.70s 233.0000
18.98s 2,333.0000
52.15s 23,333.0000
7'22.62s 233,993.0000
C'est donc plus rapide qu'avec un SHARP PC-1211, mais moins qu'avec une HP-41C aux modules dopés !!