

A005524


Values k arising from a construction of Hirschfeld of karcs on elliptic curves over GF(q), where q = A246655(n) is the nth prime power > 1.
(Formerly M0475)


2



2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 16, 18, 19, 20, 21, 22, 25, 27, 28, 30, 32, 34, 37, 38, 40, 42, 44, 45, 48, 50, 51, 54, 58, 61, 62, 64, 65, 67, 72, 74, 75, 75, 77, 80, 81, 87, 88, 91, 94, 96, 98, 100, 103, 104, 109, 110, 113, 114, 120, 126, 129, 130, 132, 135, 136, 137, 141
(list;
graph;
refs;
listen;
history;
text;
internal format)



OFFSET

1,1


COMMENTS

Let E be an elliptic curve over GF(q). A karc on E is a set of k points in E(GF(q)) such that no three are collinear (in the projective plane over GF(q)). Hirschfeld showed that if the number #E(GF(q)) of GF(q)rational points on E is even, then there exists a karc on E for k = #E(GF(q))/2. Here, a(n) denotes the largest possible k arising from this construction, hence a(n) = floor(A005523(n)/2). Note that a(n) is not necessarily the maximal k such that there exists a karc on an elliptic curve over GF(q); e.g. the elliptic curve y^2 = x^3 + x + 1 over GF(5) contains a 6arc consisting of the points {(0,1), (3,1), (4,2), (4,3), (0,4), (3,4)}.  Robin Visser, Aug 26 2023


REFERENCES

J. W. P. Hirschfeld, Linear codes and algebraic curves, pp. 3553 of F. C. Holroyd and R. J. Wilson, editors, Geometrical Combinatorics. Pitman, Boston, 1984. See M_q(1) on page 51.
N. J. A. Sloane and Simon Plouffe, The Encyclopedia of Integer Sequences, Academic Press, 1995 (includes this sequence).


LINKS

Mathematica Information Center, Item 5175, for full code.


FORMULA



EXAMPLE

For n = 4, the elliptic curve E : y^2 = x^3 + 3*x over GF(5) has 10 rational points. As this is the maximal number of rational points an elliptic curve over GF(5) can have, this implies a(4) = 10/2 = 5.  Robin Visser, Aug 26 2023


PROG

(Sage)
for q in range(1, 1000):
if Integer(q).is_prime_power():
p = Integer(q).prime_factors()[0]
if (floor(2*sqrt(q))%p != 0) or (Integer(q).is_square()) or (q==p):
print(floor((q + 1 + floor(2*sqrt(q)))/2))
else:
print(floor((q + floor(2*sqrt(q)))/2)) # Robin Visser, Aug 26 2023


CROSSREFS



KEYWORD

nonn


AUTHOR



EXTENSIONS



STATUS

approved



