for q in range(200): q = Integer(q) if q < 2: continue if not q.is_prime_power(): continue if q % 4 != 3: continue Fq. = GF(q) def chi(a): return a^((q-1)//2) for s in Fq: if s == 0: continue if (s^2-2)*(s^2+2) == 0: continue c = 2/s^2 print c*(c-1)*(c+1) != 0 r=c+1/c d=-(c+1)^2/(c-1)^2 print r != 0 print not d.is_square() for t in Fq: if t == 1: continue if t == -1: continue u = (1-t)/(1+t) v = u^5 + (r^2-2)*u^3 + u X = chi(v)*u Y = (chi(v)*v)^((q+1)//4)*chi(v)*chi(u^2+1/c^2) x = (c-1)*s*X*(1+X)/Y y = (r*X-(1+X)^2)/(r*X+(1+X)^2) print x^2+y^2 == 1+d*x^2*y^2 print u*v*X*Y*x*(y+1) != 0 print Y^2 == X^5+(r^2-2)*X^3+X