Truncatable primes: Difference between revisions
Content added Content deleted
Line 839: | Line 839: | ||
[ |
[ |
||
((n mod:f == 0) || (n mod:(f + 2) == 0)) |
((n mod:f == 0) || (n mod:(f + 2) == 0)) |
||
? [ ^ false. ]. |
? [ ^ false. ]. |
||
f := f + 6. |
|||
]. |
|||
]. |
|||
^ true. |
^ true. |
||
] |
] |
||
Line 850: | Line 847: | ||
#method is &rightTruncatable |
#method is &rightTruncatable |
||
[ |
[ |
||
#var(type:int)n := self int. |
#var(type:int)n := self int. |
||
#loop (n != 0)? |
#loop (n != 0)? |
||
[ |
[ |
||
(n is &prime) |
(n is &prime) |
||
! [ ^ false. ]. |
! [ ^ false. ]. |
||
n := n / 10. |
n := n / 10. |
||
]. |
]. |
||
Line 865: | Line 860: | ||
[ |
[ |
||
#var(type:int)n := self int. |
#var(type:int)n := self int. |
||
#var(type:int)tens := 1. |
#var(type:int)tens := 1. |
||
#loop (tens < n) |
#loop (tens < n) |
||
? [ tens := tens * 10. ]. |
? [ tens := tens * 10. ]. |
||
Line 874: | Line 868: | ||
(n is &prime) |
(n is &prime) |
||
! [ ^ false. ]. |
! [ ^ false. ]. |
||
tens := tens / 10. |
tens := tens / 10. |
||
n := n - (n / tens * tens). |
n := n - (n / tens * tens). |
||
Line 887: | Line 880: | ||
#var max_lt := 0. |
#var max_lt := 0. |
||
#var max_rt := 0. |
#var max_rt := 0. |
||
#loop ((max_lt == 0) || (max_rt == 0))? |
#loop ((max_lt == 0) || (max_rt == 0))? |
||
[ |
[ |
||
Line 893: | Line 885: | ||
[ |
[ |
||
((max_lt == 0) and:[ n is &leftTruncatable ]) |
((max_lt == 0) and:[ n is &leftTruncatable ]) |
||
? [ |
? [ max_lt := n. ]. |
||
max_lt := n. |
|||
]. |
|||
((max_rt == 0) and:[ n is &rightTruncatable ]) |
((max_rt == 0) and:[ n is &rightTruncatable ]) |
||
? [ |
? [ max_rt := n. ]. |
||
max_rt := n. |
|||
]. |
|||
]. |
]. |
||
n := n - 1. |
n := n - 1. |