ez:=proc(): print(` RatToCF, NuToCF, CF(L) `): end: RatToCF:=proc(a) local L,a1,b: if type(a,integer) then RETURN([a]): else a1:=trunc(a): b:=1/(a-a1): L:=RatToCF(b): RETURN([a1,op(L)]): fi: end: NuToCF:=proc(a,N) local L,a1,b: if N=1 then RETURN([trunc(a)]): fi: a1:=trunc(a): b:=1/(a-a1): L:=NuToCF(b,N-1): [a1,op(L)]: end: #CF(L): the continued fraction of L CF:=proc(L) local L1: if not (type(L,list) and nops(L)>0) then RETURN(FAIL): fi: if nops(L)=1 then RETURN(L[1]): else L1:=[op(2..nops(L),L)]: RETURN(normal(L[1]+1/CF(L1))): fi: end: