fcn farey(n){ f1,f2:=T(0,1),T(1,n); // fraction is (num,dnom) print("%d/%d %d/%d".fmt(0,1,1,n)); while(f2[1]>1){ k,t :=(n + f1[1])/f2[1], f1; f1,f2 = f2,T(f2[0]*k - t[0], f2[1]*k - t[1]); print(" %d/%d".fmt(f2.xplode())); } println(); }