pos(q) = { if (q==1, return (0), my (o=0); if (q>1, q=1/q; o=1; ); my (n=numerator(q), d=denominator(q)); 1 + 2*sum(k=2, d-1, eulerphi(k)) + 2*sum(t=1, n-1, gcd(t, d)==1) + o; ); } k = -1 visit(n, d) = { print (k++ " " pos(eulerphi(n^2)/eulerphi(d^2))); if (k==10 000, quit; ); } { for (d=1, oo, for (n=1, d, if (gcd(n,d)==1, visit(n,d); if (n!=d, visit(d,n); ); ); ); ); } quit