Pernicious numbers: Difference between revisions
Content added Content deleted
(Added Forth solution) |
m (Forth - simpler primality test) |
||
Line 864: | Line 864: | ||
0 |
0 |
||
begin |
begin |
||
n 0 |
n 0<> |
||
while |
while |
||
n n 1- and to n |
n n 1- and to n |
||
Line 870: | Line 870: | ||
repeat ; |
repeat ; |
||
\ primality test for 0 <= n <= 63 |
|||
: prime? |
: prime? ( n -- ? ) |
||
n 2 < if false exit then |
|||
1 swap lshift 0x28208a20a08a28ac and 0<> ; |
|||
n 2 mod 0= if n 2 = exit then |
|||
n 3 mod 0= if n 3 = exit then |
|||
5 |
|||
begin |
|||
dup dup * n <= |
|||
while |
|||
n over mod 0= if drop false exit then |
|||
2 + |
|||
n over mod 0= if drop false exit then |
|||
4 + |
|||
repeat |
|||
drop true ; |
|||
: pernicious? ( n -- ? ) |
: pernicious? ( n -- ? ) |