2.2.4-deuring.sage 435 B

12345678910111213141516171819202122
  1. import math
  2. def hasse_interval(q):
  3. interval = (q + 1 - 2 * sqrt(q)).n(), (q + 1 + 2 * sqrt(q)).n()
  4. return math.ceil(interval[0]), math.floor(interval[1])
  5. q = 23
  6. K = GF(q)
  7. low, high = hasse_interval(23)
  8. for i in range(100):
  9. a = K.random_element()
  10. b = K.random_element()
  11. try:
  12. E = EllipticCurve(K, [a, b])
  13. except:
  14. continue
  15. assert E.cardinality() >= low
  16. assert E.cardinality() <= high