procedure main() every writes(lfact(0 | !10)," ") write() write() every write(lfact(20 to 110 by 10)) write() every writes(*lfact(1000 to 10000 by 1000)," ") write() end procedure lfact(n) r := 0 f := 1 every (i := !n, r +:= .f, f *:= .i) return r end