clear;

x:=Random(0,2^20);

q:=36*x^4+36*x^3+24*x^2+6*x+1;
r:=36*x^4+36*x^3+18*x^2+6*x+1;

while not IsPrime(q) or not IsPrime(r) do
	x:=x+1;
	q:=36*x^4+36*x^3+24*x^2+6*x+1;
	r:=36*x^4+36*x^3+18*x^2+6*x+1;
end while;

Fq:=GF(q);

i:=1;
E:=EllipticCurve([Fq|0,i]);
while #E mod r ne 0 do
	i:=i+1;
	E:=EllipticCurve([Fq|0,i]);
end while;

k:=1;
while (q^k-1) mod r ne 0 do
	k+:=1;
end while;
k;
E;
