[ $ "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