[go: up one dir, main page]

login
A288797
Square array a(p,q) = p^2 + q^2 - 2*p - 2*q + 2*gcd(p,q), p >= 1, q >= 1, read by antidiagonals.
1
0, 1, 1, 4, 4, 4, 9, 5, 5, 9, 16, 12, 12, 12, 16, 25, 17, 13, 13, 17, 25, 36, 28, 20, 24, 20, 28, 36, 49, 37, 33, 25, 25, 33, 37, 49, 64, 52, 40, 36, 40, 36, 40, 52, 64, 81, 65, 53, 45, 41, 41, 45, 53, 65, 81, 100, 84, 72, 64, 52, 60, 52, 64, 72, 84, 100
OFFSET
1,4
COMMENTS
In the Cartesian plane, let r(p,q) denote the rotation with center origin and angle associated to slope p/q (p: number of units upwards, q: number of units towards the right).
Let R(p,q) be the square of area p^2 + q^2 = R^2, with vertices (0,0), (0,R), (R,R), (R,0).
The natural unit squares (i.e., the (a,a+1) X (b,b+1) Cartesian products, with a and b integers) are transformed by r(p,q) into rotated unit squares.
a(p,q) is the number of rotated unit squares that fully land inside R(p,q).
FORMULA
a(p,q) = p^2 + q^2 - 2*p - 2*q + 2*gcd(p,q).
a(p,1) = a(1,p) = (p-1)^2 = A000290(p-1).
a(p,p) = 2*p*(p-1) = 4*A000217(p-1).
a(p,p+1) = 2*p*(p-1)+1 = A001844(p-1).
a(p,p+2) = 2*p^2+2*gcd(2,p) = 2*p^2+3+(-1)^(p) = 4*A099392(p-1) = 4*A080827(p).
a(p,p+3) = 2*p^2+2*p+5+4*A079978(p) = 1+4*(1+A143101(p)).
a(p,2*p) = p*(5*p-4) = A051624(p).
a(p,3*p) = 2*p*(5*p-3) = 4*A000566(p).
EXAMPLE
Table begins:
0 1 4 9 16 25 ...
1 4 5 12 17 28 ...
4 5 12 13 20 33 ...
9 12 13 24 25 36 ...
16 17 20 25 40 41 ...
25 28 33 36 41 60 ...
... ... ... ... ... ... ...
MATHEMATICA
A[p_, q_] := p^2 + q^2 - 2*p - 2*q + 2*GCD[p, q];
(* or, checking without the formula: *)
okQ[{a_, b_}, p_, q_] := Module[{r2 = p^2 + q^2}, 0 <= a*q - b*p <= r2 && 0 <= a*p + b*q <= r2 && 0 <= a*q - b*p + q <= r2 && 0 <= a*p + b*q + p <= r2 && 0 <= a*q - (b + 1)*p <= r2 && 0 <= a*p + b*q + q <= r2 && 0 <= (a + 1)*q - (b + 1)*p <= r2 && 0 <= a*p + b*q + p + q <= r2];
A[p_, q_] := Module[{r}, r = Reduce[okQ[{a, b}, p, q], {a, b}, Integers]; If[r[[0]] === And, 1, Length[r]]];
Flatten[Table[A[p - q + 1, q], {p, 1, 11}, {q, 1, p}]] (* Jean-François Alcover, Jun 17 2017 *)
PROG
(PARI)
a(p, q)=p^2+q^2-2*p-2*q+2*gcd(p, q)
for(n=2, 12, for(p=1, n-1, {q=n-p; print(a(p, q))}))
KEYWORD
tabl,nonn,easy
AUTHOR
Luc Rousseau, Jun 16 2017
STATUS
approved