40 lines
674 B
Plaintext
40 lines
674 B
Plaintext
get "libhdr"
|
|
|
|
let corput(n, base, num, denom) be
|
|
$( let p = 0 and q = 1
|
|
until n=0
|
|
$( p := p * base + n rem base
|
|
q := q * base
|
|
n := n / base
|
|
$)
|
|
|
|
!num := p
|
|
!denom := q
|
|
|
|
until p=0
|
|
$( n := p
|
|
p := q rem p
|
|
q := n
|
|
$)
|
|
|
|
!num := !num / q
|
|
!denom := !denom / q
|
|
$)
|
|
|
|
let writefrac(num, denom) be
|
|
test num=0
|
|
do writes(" 0")
|
|
or writef(" %N/%N", num, denom)
|
|
|
|
let start() be
|
|
$( let num = ? and denom = ?
|
|
for base=2 to 5
|
|
$( writef("base %N:", base)
|
|
for i=0 to 9
|
|
$( corput(i, base, @num, @denom)
|
|
writefrac(num, denom)
|
|
$)
|
|
wrch('*N')
|
|
$)
|
|
$)
|