How to find a CM elliptic curve with small integer coefficients?

asked 2024-09-08 17:38:31 +0200

Panzós gravatar image

updated 2024-09-09 02:41:02 +0200

I want to find a CM elliptic curve with relatively small integer coefficients and complex multiplication discriminant equal to -163. The coefficient of the elliptic curve found by 'EllipticCurve_from_j' is not small enough.

cm_j_invariants(QQ)
cm_j_invariants_and_orders(QQ)
E0 = EllipticCurve_from_j(-262537412640768000)
E1 = E0.short_weierstrass_model();E1      # y^2 = x^3 - 34790720*x + 78984748304
E2 =EllipticCurve([-8697680,9873093538])  # y^2 = x^3 - 8697680*x + 9873093538
[E2.has_cm(),E2.cm_discriminant()]        # [True, -163]

I want to search for the short Weierstrass elliptic curve by brute force search. $y^2=x^3-ax+b\quad(0 < a < b < 10000000000)$ , where a and b are both integers.

Here's a wrong brute-force search approach using SageMath:

for a in range(1, 10000000000):
  for b in range(a+1, 10000000000):
     E = EllipticCurve([0, 0, 0, -a, b])
        if E.cm_discriminant() == -163:
        print(f"Found curve: y^2 = x^3 - {a}*x + {b}")

Thanks in advance!

edit retag flag offensive close merge delete