OFFSET
1,2
COMMENTS
The matrix M(n) = [d*e / gcd(d, e)^2], where d, e run through the unitary divisors of n, is a Dedekind group matrix, hence its eigenvalues can be computed using characters of finite abelian groups. It can be proven that Spec(M(n)) = Product_{p|n, p prime} {1 + p^v_p(n), 1 - p^v_p(n)}. From this it follows that the determinant is never equal to 0, hence a(n) != 0 for all n. It also follows that the eigenvalues of this matrix appear with multiplicity one and each eigenvalue is an integer.
LINKS
David A. Corneth, Table of n, a(n) for n = 1..10000
David A. Corneth, Formula adapted from Orges Leka
MathOverflow, The action of the unitary divisors group on the set of divisors, 2020.
FORMULA
a(n) = Product_{I subset {1,...,omega(n)}} Product_{i in I} (1 + p_i^v_{p_i}(n))* Product_{j in I^c} (1 - p_j^v_{p_j}(n)) (proven), where omega(n) denotes the number of distinct prime divisors of n, I^c denotes the complement of the subset I in {1, 2, ..., omega(n)} and v_p(n) denotes the valuation of n at the prime divisors p of n.
If the prime factorization of n is n = Product_i p_i^e_i, then a(n) = (Product_i 1 - p_i^(2*e_i))^(2^(omega(n) - 1)). In particular, a(n) < 0 if and only if n is a prime power (A246655). - Chai Wah Wu, Nov 06 2023
By the formula of Chai Wah Wu it follows that a(n) = (uphi(n)*usigma(n))^ (2^(omega(n)-1))*(-1)^(omega(n)) where uphi(n) = A047994(n) is the unitary totient function and usigma(n) = A034448(n) is the sum of unitary divisors of n. - Orges Leka, Nov 07 2023
EXAMPLE
For n = 6 the a(6) = 576, since the eigenvalues of the matrix are 12, 2, -4, -6 and so 576 = 12*2*(-4)*(-6).
PROG
(SageMath)
def unitary_divisors(n):
return [d for d in divisors(n) if gcd(n//d, d) == 1]
def Un(n):
un = unitary_divisors(n)
M = matrix([[a*b//gcd(a, b)**2 for a in un] for b in un])
return M.det()
print([Un(n) for n in range(1, 44)])
# Alternative:
def detN(n):
PD = set(prime_divisors(n))
Sn = Subsets(PD)
dn = 1
for si in Sn:
sj = PD.difference(si)
Pi = prod(1 + p**valuation(n, p) for p in si)
Pj = prod(1 - p**valuation(n, p) for p in sj)
dn = dn*Pi*Pj
return dn
print([detN(n) for n in range(1, 44)])
# Based on the extensions found by David A. Corneth and Chai Wah Wu:
def uphi(n):
return prod(p**(valuation(n, p))-1 for p in prime_divisors(n))
def usigma(n):
return sum(d for d in divisors(n) if gcd(n//d, d) == 1)
def omega(n):
return len(prime_divisors(n))
def ddet(n):
return (uphi(n)*usigma(n))**(2**(omega(n)-1))*(-1)**(omega(n))
print([ddet(n) for n in range(1, 44)])
(PARI)
a(n) = {
my(d = divisors(n), m);
d = select(x->gcd(x, n/x)==1, d);
m = matrix(#d, #d, i, j, d[i]*d[j]/(gcd(d[i], d[j])^2));
matdet(m)
} \\ David A. Corneth, Nov 04 2023
(PARI)
a(n) = {
my(f = factor(n), P = vector(#f~, i, f[i, 1]^(2*f[i, 2])), res = 1);
forsubset(#f~, s,
s = Set(s);
vs = vector(#s, i, 1 - P[s[i]]);
res*=vecprod(vs);
);
return(res);
} \\ David A. Corneth, Nov 04 2023
(Python)
from math import prod
from sympy import factorint
def A367064(n):
f = factorint(n)
return prod(1-d**(e<<1) for d, e in f.items())**(1<<len(f)-1) if n>1 else 1
# Chai Wah Wu, Nov 06 2023
CROSSREFS
KEYWORD
sign
AUTHOR
Orges Leka, Nov 04 2023
EXTENSIONS
More terms from David A. Corneth, Nov 04 2023
STATUS
approved