| 12345678910111213141516171819202122 |
- import math
- def hasse_interval(q):
- interval = (q + 1 - 2 * sqrt(q)).n(), (q + 1 + 2 * sqrt(q)).n()
- return math.ceil(interval[0]), math.floor(interval[1])
- q = 23
- K = GF(q)
- low, high = hasse_interval(23)
- for i in range(100):
- a = K.random_element()
- b = K.random_element()
- try:
- E = EllipticCurve(K, [a, b])
- except:
- continue
- assert E.cardinality() >= low
- assert E.cardinality() <= high
|