login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

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