The Museum of HP Calculators

HP Forum Archive 21

[ Return to Index | Top of Index ]

Mersenne Prime
Message #1 Posted by Gerson W. Barbosa on 6 Oct 2013, 9:41 p.m.

MP:
%%HP: T(3)A(R)F(.); \<< DUP LN DUP \pi * 4 SWAP / 1 + UNROT / * IP 2 { 2 } ROT 2 SWAP START SWAP NEXTPRIME DUP UNROT DUP 2 SWAP ^ 1 - 4 PICK3 2 - 1 SWAP START SQ 2 - OVER MOD NEXT NIP NOT { + } { DROP } IFTE NEXT NIP \>>

110 MP --> { 2 3 5 7 13 17 19 31 61 89 107 } ( 50 s, HP 50g ) 607 MP --> { 2 3 5 7 13 17 19 31 61 89 107 127 521 607 } (250 s, Emulator)

References:

1) Mersenne Prime
2) Lucas–Lehmer primality test

P.S.: Version using local variables, for clarity

%%HP: T(3)A(R)F(.);
\<< DUP LN DUP \pi * 4 SWAP / 1 + UNROT / * IP 2 { 2 } ROT 2 SWAP
  START SWAP NEXTPRIME DUP 2 SWAP ^ 1 - 4 \-> p m s
    \<< 1 p 2 -
      START s SQ 2 - m MOD 's' STO
      NEXT p DUP UNROT s NOT { + } { DROP } IFTE
    \>>
  NEXT NIP
\>>

Edited: 6 Oct 2013, 10:43 p.m.


[ Return to Index | Top of Index ]

Go back to the main exhibit hall