45 lines
1,023 B
Text
45 lines
1,023 B
Text
[ $ "bigrat.qky" loadfile ] now!
|
|
|
|
[ rot + dip + reduce ] is mediant ( n/d n/d --> n/d )
|
|
|
|
[ 1+ temp put [] swap
|
|
dup size 1 - times
|
|
[ dup i^ peek
|
|
rot over nested join
|
|
unrot over i^ 1+ peek
|
|
join do mediant
|
|
dup temp share < iff
|
|
[ join nested
|
|
rot swap join
|
|
swap ]
|
|
else 2drop ]
|
|
drop
|
|
' [ [ 1 1 ] ] join
|
|
temp release ] is nextfarey ( fy n --> fy )
|
|
|
|
[ witheach
|
|
[ unpack vulgar$
|
|
echo$ sp ] ] is echofarey ( fy --> )
|
|
|
|
[ 0 swap dup times
|
|
[ i over gcd
|
|
1 = rot + swap ]
|
|
drop ] is totient ( n --> n )
|
|
|
|
[ 0 swap times
|
|
[ i 1+ totient + ] ] is totientsum ( n --> n )
|
|
|
|
[ totientsum 1+ ] is fareylength ( n --> n )
|
|
|
|
say "First eleven Farey series:" cr
|
|
' [ [ 0 1 ] [ 1 1 ] ]
|
|
10 times
|
|
[ dup echofarey cr
|
|
i^ 2 + nextfarey ]
|
|
echofarey cr
|
|
cr
|
|
say "Length of Farey series 100, 200 ... 1000: "
|
|
[] 10 times
|
|
[ i^ 1+ 100 *
|
|
fareylength join ]
|
|
echo
|