login
Length of shortest sequence b with b(0) = 1, b(i+1) = b(i)+d where d|b(i) and b(k) = n.
6

%I #35 Nov 01 2024 12:44:46

%S 0,1,2,2,3,3,4,3,4,4,5,4,5,5,5,4,5,5,6,5,6,6,7,5,6,6,6,6,7,6,7,5,6,6,

%T 7,6,7,7,7,6,7,7,8,7,7,8,9,6,7,7,7,7,8,7,8,7,8,8,9,7,8,8,8,6,7,7,8,7,

%U 8,8,9,7,8,8,8,8,8,8,9,7,8,8,9,8,8,9,9,8,9,8,9,9,9,10,9,7,8,8,8,8,9,8,9,8,9

%N Length of shortest sequence b with b(0) = 1, b(i+1) = b(i)+d where d|b(i) and b(k) = n.

%C This is similar to the shortest addition chain for n. Both the binary method and the divisor method for finding an addition chain will find a sequence of this type. The smallest few n where there is an addition chain shorter than this sequence are 23,43,46,47,59. The first few n where this sequence is smaller than the shortest addition chain are 143,267,275,286,407. The smallest few n such that a(n) = a(2n) are 86,213,285,342,383.

%C The greedy inverse (index of first occurrences of n = 0, 1, 2, 3...) starts 1, 2, 3, 5, 7, 11, 19, 23, 43, 47, 94, 167, 283, 359, 718, 719, 1439, 2447, 4079, 7559,.. , different from A105017. - _R. J. Mathar_, Mar 03 2022

%H David W. Wilson, <a href="/A117497/b117497.txt">Table of n, a(n) for n = 1..10000</a>

%H John M. Campbell, <a href="https://arxiv.org/abs/2403.20073">A binary version of the Mahler-Popken complexity function</a>, arXiv:2403.20073 [math.NT], 2024. See pp. 5-6. See also <a href="https://math.colgate.edu/~integers/y94/y94.pdf">Integers</a> (2024) Vol. 24, Art. No. A94. See p. 5.

%H <a href="/index/Com#complexity">Index to sequences related to the complexity of n</a>

%F a(1)=0, a(n) = 1 + min_{d|n, d<n} a(n-d).

%F a(2^n) = n. - _R. J. Mathar_, Mar 03 2022

%e The sequence 1,2,4,8,16,32,64,128,132,143 gets 143 in 9 steps, so a(143) = 9.

%p A117497 := proc(n)

%p option remember ;

%p local prev,d,a ;

%p if n <= 2 then

%p n-1 ;

%p else

%p a := n ;

%p for prev from n-1 to 1 by -1 do

%p for d in numtheory[divisors](prev) do

%p if d+prev = n then

%p a := min(a,procname(prev)+1) ;

%p end if;

%p end do:

%p end do:

%p a ;

%p end if;

%p end proc:

%p seq(A117497(n),n=1..100) ; # _R. J. Mathar_, Mar 02 2022

%t a[n_] := a[n] = If[n == 1, 0, With[{m = Log2[n]}, If[IntegerQ[m], m,

%t 1 + Min[a[n-#]& /@ Most[Divisors[n]]]]]];

%t Table[a[n], {n, 1, 105}] (* _Jean-François Alcover_, Aug 05 2022 *)

%o (Python)

%o from functools import lru_cache

%o from sympy import divisors

%o @lru_cache(maxsize=None)

%o def A117497(n): return 0 if n == 1 else 1 + min(A117497(n-d) for d in divisors(n,generator=True) if d < n) # _Chai Wah Wu_, Mar 03 2022

%Y Cf. A003313, A117498, A352079.

%K nonn

%O 1,3

%A _Franklin T. Adams-Watters_, Mar 22 2006