login
a(n) = n divided by the 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.
6

%I #11 Jun 04 2021 04:42:42

%S 1,1,1,1,1,3,1,1,1,2,1,1,1,1,1,1,1,2,1,1,3,1,1,3,1,2,1,7,1,1,1,1,1,2,

%T 1,4,1,1,3,5,1,1,1,1,1,1,1,1,1,2,1,1,1,1,5,1,3,2,1,3,1,1,1,1,1,3,1,4,

%U 1,1,1,1,1,2,3,1,1,6,1,1,1,2,1,1,1,1,1,2,1,1,1,2,3,1,1,3,1,2,1,4,1,1,1,1,3

%N a(n) = n divided by the 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.

%C It seems that A006516 gives the positions of records after its initial zero.

%H Antti Karttunen, <a href="/A344759/b344759.txt">Table of n, a(n) for n = 1..65537</a>

%F a(n) = n / A344758(n).

%o (PARI)

%o 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

%o A344759(n) = { my(x=A011772(n)); fordiv(n,d,if(A011772(d)==x, return(n/d))); };

%o (Python 3.8+)

%o from itertools import combinations

%o from math import prod

%o from sympy import factorint, divisors

%o from sympy.ntheory.modular import crt

%o def A011772(n):

%o plist = [p**q for p, q in factorint(2*n).items()]

%o if len(plist) == 1:

%o return n-1 if plist[0] % 2 else 2*n-1

%o 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)))

%o def A344759(n):

%o m = A011772(n)

%o for d in divisors(n):

%o if A011772(d) == m:

%o return n//d # _Chai Wah Wu_, Jun 03 2021

%Y Cf. A006516, A011772, A344758, A344881 (positions of ones), A344882 (of terms > 1).

%K nonn

%O 1,6

%A _Antti Karttunen_, Jun 01 2021