58 lines
1.3 KiB
Text
58 lines
1.3 KiB
Text
[ $ "bigrat.qky" loadfile ] now!
|
|
|
|
[ 1 & not ] is even ( n --> b )
|
|
|
|
[ nip 1 = ] is vint ( n/d --> b )
|
|
|
|
[ [ dup even while
|
|
1 >> again ]
|
|
1 = ] is powerof2 ( n --> b )
|
|
|
|
[ 0 swap
|
|
[ dup even while
|
|
dip 1+
|
|
1 >> again ]
|
|
drop ] is lowbit ( n --> n )
|
|
|
|
[ [] swap nest$
|
|
witheach
|
|
[ char / over find
|
|
space unrot poke
|
|
build nested join ] ] is parse$ ( $ --> [ )
|
|
|
|
[ stack ] is program ( s --> )
|
|
|
|
[ true temp put
|
|
witheach
|
|
[ do 2over v*
|
|
2dup vint iff
|
|
[ false temp replace
|
|
conclude ]
|
|
else 2drop ]
|
|
2swap 2drop
|
|
temp take ] is run ( n/d [ --> n/d b )
|
|
|
|
[ stack ] is primes ( --> s )
|
|
|
|
$ "17/91 78/85 19/51 23/38 29/33 77/29 95/23"
|
|
$ " 77/19 1/17 11/13 13/11 15/14 15/2 55/1" join
|
|
parse$ program put
|
|
|
|
2 n->v
|
|
15 times
|
|
[ program share run
|
|
drop over echo sp ]
|
|
cr
|
|
2drop
|
|
2 n->v
|
|
[] primes put
|
|
[ program share run
|
|
drop over dup powerof2 iff
|
|
[ lowbit primes take
|
|
swap join primes put ]
|
|
else drop
|
|
primes share size 20 = until ]
|
|
2drop
|
|
primes take echo
|
|
|
|
program release
|