login
A344758
Smallest divisor d of n for which A011772(d) = A011772(n), where A011772(n) is the smallest number m such that m(m+1)/2 is divisible by n.
5
1, 2, 3, 4, 5, 2, 7, 8, 9, 5, 11, 12, 13, 14, 15, 16, 17, 9, 19, 20, 7, 22, 23, 8, 25, 13, 27, 4, 29, 30, 31, 32, 33, 17, 35, 9, 37, 38, 13, 8, 41, 42, 43, 44, 45, 46, 47, 48, 49, 25, 51, 52, 53, 54, 11, 56, 19, 29, 59, 20, 61, 62, 63, 64, 65, 22, 67, 17, 69, 70, 71, 72, 73, 37, 25, 76, 77, 13, 79, 80, 81, 41, 83
OFFSET
1,2
LINKS
FORMULA
a(n) = n / A344759(n).
EXAMPLE
36 has 9 divisors: 1, 2, 3, 4, 6, 9, 12, 18, 36. When A011772 is applied to them, one obtains values [1, 3, 2, 7, 3, 8, 8, 8, 8], thus there are four divisors that obtain the maximal value 8 obtained at 36 itself, of which divisor 9 is the smallest, and therefore a(36) = 9.
PROG
(PARI)
A011772(n) = { if(n==1, return(1)); my(f=factor(if(n%2, n, 2*n)), step=vecmax(vector(#f~, i, f[i, 1]^f[i, 2]))); forstep(m=step, 2*n, step, if(m*(m-1)/2%n==0, return(m-1)); if(m*(m+1)/2%n==0, return(m))); }; \\ From A011772
A344758(n) = { my(x=A011772(n)); fordiv(n, d, if(A011772(d)==x, return(d))); };
(Python 3.8+)
from itertools import combinations
from math import prod
from sympy import factorint, divisors
from sympy.ntheory.modular import crt
def A011772(n):
plist = [p**q for p, q in factorint(2*n).items()]
if len(plist) == 1:
return n-1 if plist[0] % 2 else 2*n-1
return min(min(crt([m, 2*n//m], [0, -1])[0], crt([2*n//m, m], [0, -1])[0]) for m in (prod(d) for l in range(1, len(plist)//2+1) for d in combinations(plist, l)))
def A344758(n):
m = A011772(n)
for d in divisors(n):
if A011772(d) == m:
return d # Chai Wah Wu, Jun 03 2021
CROSSREFS
KEYWORD
nonn
AUTHOR
Antti Karttunen, May 31 2021
STATUS
approved