print("Use p. 78 in the script for N > 2") N=100; forprime(n=3,N,\ { eps_2=1; eps_3=1; deg=length(mfcosets(n)); eps_inf=mfnumcusps(n); if(n % 4 == 0, eps_2=eps_2*0, forprime(q=2,N,if(n % q == 0,eps_2=eps_2*(1+kronecker(-4,q)),eps_2=eps_2))); /* J. Wehler: corrected to kronecker (-4,q)*/ if(n % 9 == 0, eps_3=eps_3*0, forprime(r=2,N,if(n % r == 0,eps_3=eps_3*(1+kronecker(-3,r)),eps_3=eps_3))); print("N is ", n, ", epsilon_2 is ", eps_2, ", epsilon_3 is ", eps_3, ", epsilon_infinity is ", eps_inf, ", degree is ", deg, " and genus is ", 1+deg/12-eps_2/4-eps_3/3-eps_inf/2) });