OFFSET
1,2
COMMENTS
If u, v are positive integers with gcd(u,v) = 1, the "reduced inverse" red_inv(u,v) of u mod v is u^(-1) mod v if u^(-1) mod v <= v/2, otherwise it is v - u^(-1) mod v.
That is, we map u to whichever of +-u has a representative mod v in the range 0 to v/2. Stated another way, red_inv(u,v) is a number r in the range 0 to v/2 such that r*u == +-1 mod v.
For example, red_inv(3,11) = 4, since 3^(-1) mod 11 = 4. But red_inv(2,11) = 5 = 11-6, since red_inv(2,11) = 6.
Arises in the study of A344005.
LINKS
N. J. A. Sloane, Table of n, a(n) for n = 1..5050 [First 100 antidiagonals, flattened]
EXAMPLE
The array begins:
0, 5, 9, 13, 21, 25, 33, 37, 45, 57, 61, 73,...
5, 0, 11, 13, 23, 25, 35, 37, 47, 59, 61, 73,...
9, 11, 0, 29, 21, 51, 69, 39, 91, 59, 61, 149,...
13, 13, 29, 0, 43, 27, 69, 113, 139, 57, 125, 223,...
21, 23, 21, 43, 0, 131, 67, 153, 45, 175, 309, 221,...
25, 25, 51, 27, 131, 0, 103, 77, 183, 233, 311, 443,...
33, 35, 69, 69, 67, 103, 0, 305, 137, 407, 373, 443,...
37, 37, 39, 113, 153, 77, 305, 0, 229, 115, 495, 75,...
...
The first few antidiagonals are:
[0]
[5, 5]
[9, 0, 9]
[13, 11, 11, 13]
[21, 13, 0, 13, 21]
[25, 23, 29, 29, 23, 25]
[33, 25, 21, 0, 21, 25, 33]
[37, 35, 51, 43, 43, 51, 35, 37]
...
MAPLE
myfun1 := proc(A, B) local Ar, Br;
if igcd(A, B) > 1 then return(0); fi;
Ar:=(A)^(-1) mod B;
if 2*Ar > B then Ar:=B-Ar; fi;
Br:=(B)^(-1) mod A;
if 2*Br > A then Br:=A-Br; fi;
A*Ar+B*Br;
end;
myfun2:=(i, j)->myfun1(ithprime(i), ithprime(j));
for i from 1 to 30 do lprint([seq(myfun2(i-j+1, j), j=1..i)]); od:
CROSSREFS
KEYWORD
nonn,tabl
AUTHOR
N. J. A. Sloane, Sep 18 2021
STATUS
approved