login
A358317
Ordered squares of the chord lengths of the parabola y=x^2, where the chord ends are all possible points of the parabola with integer coordinates.
1
0, 2, 4, 10, 16, 18, 20, 26, 36, 50, 64, 68, 80, 82, 90, 98, 100, 122, 144, 148, 162, 170, 180, 196, 226, 234, 242, 250, 256, 260, 272, 290, 320, 324, 338, 362, 400, 404, 442, 450, 484, 490, 500, 530, 576, 578, 580, 592, 612, 626, 650, 676, 720, 722, 730, 738, 784, 788, 810, 842, 882, 900, 962, 980
OFFSET
1,2
COMMENTS
Numbers of the form (x^2 - z^2)^2 + (x-z)^2 for integers x and z, so that terms are sums of 2 squares (subset of A001481).
Numbers of the form m^2*(k^2 + 1) for integers m and k of the same parity.
Chords starting at the origin (z=0, or m=k) are terms A071253(x).
EXAMPLE
0 is a term since it is the square of the chord length from (0,0) to (0,0).
10 = 1^2 + 3^2 is a term since it is the square of the chord length from (1,1) to (2,4).
PROG
(Python)
# Program from Oleg Sorokin
from math import isqrt
limit = 2000
s = set()
end = isqrt(limit)
for m in range(0, end+1):
for k in range(m%2, end+1, 2):
c = m**2*(k**2+1)
if c > limit:
break
s.add(c)
print(sorted(s))
(Python)
from itertools import count, islice
from sympy import divisors, integer_nthroot
def A358317_gen(startvalue=0): # generator of terms >= startvalue
for n in count(max(startvalue, 0)):
if n == 0:
yield 0
else:
for d in divisors(n, generator=True):
a, b = integer_nthroot(d, 2)
if b:
c, e = integer_nthroot(n//d-1, 2)
if e and not (c^a)&1:
yield n
break
A358317_list = list(islice(A358317_gen(), 30)) # Chai Wah Wu, Nov 24 2022
CROSSREFS
Sequence in context: A000947 A125245 A371896 * A096689 A039682 A218665
KEYWORD
nonn
AUTHOR
Nicolay Avilov, Nov 09 2022
STATUS
approved