|
|
A046081
|
|
Number of integer-sided right triangles with n as a hypotenuse or leg.
|
|
21
|
|
|
0, 0, 1, 1, 2, 1, 1, 2, 2, 2, 1, 4, 2, 1, 5, 3, 2, 2, 1, 5, 4, 1, 1, 7, 4, 2, 3, 4, 2, 5, 1, 4, 4, 2, 5, 7, 2, 1, 5, 8, 2, 4, 1, 4, 8, 1, 1, 10, 2, 4, 5, 5, 2, 3, 5, 7, 4, 2, 1, 14, 2, 1, 7, 5, 8, 4, 1, 5, 4, 5, 1, 12, 2, 2, 9, 4, 4, 5, 1, 11, 4, 2, 1, 13, 8, 1, 5, 7, 2, 8, 5, 4, 4, 1, 5, 13, 2, 2, 7
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,5
|
|
COMMENTS
|
Pythagorean triples including primitive ones and non-primitive ones. For a certain n, it may be a leg or the hypotenuse in either a primitive Pythagorean triple, or a non-primitive Pythagorean triple, or both. - Rui Lin, Nov 02 2019
|
|
REFERENCES
|
A. Beiler, Recreations in the Theory of Numbers. New York: Dover, pp. 116-117, 1966.
|
|
LINKS
|
|
|
FORMULA
|
|
|
EXAMPLE
|
n=25 is the least number which meets all of following cases:
1. 25 is a leg of a primitive Pythagorean triple (25,312,313), so A024361(25)=1;
2. 25 is the hypotenuse of a primitive Pythagorean triple (7,24,25), so A024362(25)=1;
3. 25 is a leg of a non-primitive Pythagorean triple (25,60,65), so A328708(25)=1;
4. 25 is the hypotenuse of a non-primitive Pythagorean triple (15,20,25), so A328712(25)=1;
5. Combination 1. and 3. means A046079(25)=2;
6. Combination 2. and 4. means A046080(25)=2;
7. Combination 1. and 2. means A024363(25)=2;
8. Combination 3. and 4. means A328949(25)=2;
9. Combination of 1., 2., 3., and 4. means A046081(25)=4. (End)
|
|
MATHEMATICA
|
a[1] = 0; a[n_] := Module[{f}, f = Select[FactorInteger[n], Mod[#[[1]], 4] == 1&][[All, 2]]; (DivisorSigma[0, If[OddQ[n], n, n/2]^2]-1)/2 + (Times @@ (2*f+1) - 1)/2]; Array[a, 99] (* Jean-François Alcover, Jul 19 2017 *)
|
|
PROG
|
(PARI) a(n) = {oddn = n/(2^valuation(n, 2)); f = factor(oddn); for (k=1, #f~, if ((f[k, 1] % 4) != 1, f[k, 2] = 0); ); n1 = factorback(f); if (n % 2, (numdiv(n^2)+numdiv(n1^2))/2 -1, (numdiv((n/2)^2)+numdiv(n1^2))/2 -1); } \\ Michel Marcus, Mar 07 2016
(Python)
from sympy import factorint
def a(n):
p1, p2 = 1, 1
for i in factorint(n).items():
if i[0] % 4 == 1:
p2 *= i[1] * 2 + 1
p1 *= i[1] * 2 + 1 - (2 if i[0] == 2 else 0)
return (p1 + p2)//2 - 1
print([a(n) for n in range(1, 100)]) # Oleg Sorokin, Mar 02 2023
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn
|
|
AUTHOR
|
|
|
EXTENSIONS
|
|
|
STATUS
|
approved
|
|
|
|