15 lines
396 B
Text
15 lines
396 B
Text
\\ FRACTRAN
|
|
\\ 4/27/16 aev
|
|
fractran(val,ft,lim)={
|
|
my(ftn=#ft,fti,di,L=List(),j=0);
|
|
while(val&&j<lim, listput(L,val);
|
|
for(i=1,ftn, fti=ft[i]; di=denominator(fti);
|
|
if(val%di==0, break));\\fend i
|
|
val= numerator(fti)*val/di; j++);\\wend j
|
|
return(Vec(L));
|
|
}
|
|
|
|
{\\ Executing:
|
|
my(v=[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]);
|
|
print(fractran(2,v,15));
|
|
}
|