24 lines
677 B
Factor
24 lines
677 B
Factor
USING: formatting fry io kernel math math.functions math.primes
|
|
math.primes.factors memoize prettyprint sequences ;
|
|
IN: rosetta-code.long-primes
|
|
|
|
: period-length ( p -- len )
|
|
[ 1 - divisors ] [ '[ 10 swap _ ^mod 1 = ] ] bi find nip ;
|
|
|
|
MEMO: long-prime? ( p -- ? ) [ period-length ] [ 1 - ] bi = ;
|
|
|
|
: .lp<=500 ( -- )
|
|
500 primes-upto [ long-prime? ] filter
|
|
"Long primes <= 500:" print [ pprint bl ] each nl ;
|
|
|
|
: .#lp<=n ( n -- )
|
|
dup primes-upto [ long-prime? t = ] count swap
|
|
"%-4d long primes <= %d\n" printf ;
|
|
|
|
: long-primes-demo ( -- )
|
|
.lp<=500 nl
|
|
{ 500 1,000 2,000 4,000 8,000 16,000 32,000 64,000 }
|
|
[ .#lp<=n ] each ;
|
|
|
|
MAIN: long-primes-demo
|