OFFSET
0,6
EXAMPLE
Triangle T(n, k) starts:
[0] 0;
[1] 0, 1;
[2] 0, 1, 2;
[3] 0, 1, 0, 3;
[4] 0, 1, 0, 0, 4;
[5] 0, 1, 0, 0, 4, 5;
[6] 0, 1, 0, 3, 4, 0, 6;
[7] 0, 1, 2, 0, 4, 0, 0, 7;
[8] 0, 1, 0, 0, 4, 0, 0, 0, 8;
[9] 0, 1, 0, 0, 4, 0, 0, 7, 0, 9;
.
Array Arow(n) = [T(j, n), j = 0.. ] starts:
[0] 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...
[1] 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...
[2] 0, 2, 2, 0, 0, 0, 0, 2, 0, 0, ...
[3] 0, 3, 3, 3, 0, 0, 3, 0, 0, 0, ...
[4] 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, ...
[5] 0, 5, 5, 0, 5, 5, 0, 0, 0, 0, ...
[6] 0, 6, 6, 6, 0, 6, 6, 0, 0, 0, ...
[7] 0, 7, 7, 7, 0, 0, 7, 7, 0, 7, ...
[8] 0, 8, 8, 0, 8, 0, 0, 8, 8, 0, ...
[9] 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, ...
.
3 is not a quadratic residue modulo 7, therefore T(7, 3) = 0.
12 is a quadratic residue modulo 23, therefore T(23, 12) = 12.
MAPLE
QR := (k, n) -> ifelse(n = 0 or NumberTheory:-QuadraticResidue(k, n) < 0, 0, 1):
T := (n, k) -> k*QR(k, n): seq(seq(T(n, k), k = 0..n), n = 0..12);
Arow := (n, len) -> local j; seq(T(j, n), j=0..len):
seq(lprint([n], Arow(n, 9)), n=0..9);
MATHEMATICA
QR[n_, k_] := Module[{x, y}, If[Reduce[x^2 == n + k*y, {x, y}, Integers] =!= False, 1, -1]];
T[n_, k_] := If[n == 0 || QR[k, n] < 0, 0, k];
Table[T[n, k], {n, 0, 12}, {k, 0, n}] // Flatten
PROG
(Python)
from sympy.ntheory import is_quad_residue
def QR(n, k): return is_quad_residue(n, k)
def T(n, k): return 0 if n == 0 or not QR(k, n) else k
for n in range(13): print([T(n, k) for k in range(n + 1)])
CROSSREFS
KEYWORD
nonn,tabl
AUTHOR
Peter Luschny, Mar 17 2025
STATUS
approved
