login
Let CardE(K) the number of elements (x, y) of the finite group defined by the elliptic curve y^2 = x^3 + x + 1 (mod p) including the point at infinity; a(n) is the difference between 2*sqrt(p) and |cardE(K) - (p + 1)|.
2

%I #37 Feb 16 2025 08:33:16

%S 2,3,1,2,4,3,8,7,5,4,10,2,5,3,1,10,12,3,4,3,15,11,12,8,18,17,3,17,7,

%T 10,20,18,11,9,10,22,12,0,1,24,26,18,2,20,4,10,18,9,30,28,27,8,9,1,23,

%U 28,8,30,11,26,13,8,28,32,3,20,26,22,21,23,33,28,16

%N Let CardE(K) the number of elements (x, y) of the finite group defined by the elliptic curve y^2 = x^3 + x + 1 (mod p) including the point at infinity; a(n) is the difference between 2*sqrt(p) and |cardE(K) - (p + 1)|.

%C Hasse's theorem tells us the following estimate:

%C |cardE(K) - (p + 1)| <= 2*sqrt(p) where K = Fp is the finite field with p elements and E an elliptic curve y^2 = x^3 + x + 1 (mod p) defined over K. CardE(K) is the number of elements (x, y) of the finite group defined by the elliptic curve including the point at infinity. The number of points of the curve grows roughly as the number of elements in the field. This sequence gives the integer difference: 2*sqrt(p) - |cardE(K) - (p + 1)|.

%C We obtain remarkable values such that a(38) = 0, a(258) = 0.

%H Michel Lagneau, <a href="/A199263/b199263.txt">Table of n, a(n) for n = 1..1000</a>

%H Eric Weisstein's World of Mathematics, <a href="https://mathworld.wolfram.com/EllipticCurveGroupLaw.html">Elliptic Curve Group Law</a>.

%H Wikipedia, <a href="http://en.wikipedia.org/wiki/Hasse%27s_theorem_on_elliptic_curves">Hasse's theorem on elliptic curves</a>

%e For n=6, p = prime(6)= 13 and a(6) = 3 because the solutions of y^2 = x^3 + x + 1 (mod 13) are {(inf, inf), (7,0), (0,1), (5, 1), (8,1), (4,2), (11,2), (1, 4), (12,5), (10,6), (10,7), (12, 8), (1,9), (4,11), (11,11), (0, 12), (5,12), (8,12)} => CardE(K) = A192334(6) = 18, and floor(2*sqrt(13) - 18 + 13 + 1) = floor(7.2111025 - 4) = 3.

%p for m from 1 to 100 do:p:=ithprime(m):it:=1:for y from 0 to p-1 do:for x from 0 to p-1 do:z:=x^3+x+1:z1:=irem(z, p):z2:=irem(y^2, p):if z1=z2 then it:=it+1:else fi:od:od:y:= floor(2*evalf(sqrt(p))-abs(it-p-1)): printf(`%d, `, y):od:

%Y Cf. A192334, A098514.

%K nonn,changed

%O 1,1

%A _Michel Lagneau_, Nov 07 2011