login
a(n) = j + k, where u(n) = u(j) + u(k) is the unique sum of Ulam numbers described in A002859 (with 1 <= j < k < n).
3

%I #16 Nov 21 2019 04:05:49

%S 3,4,5,6,8,9,12,12,14,15,15,17,18,18,20,20,22,23,23,25,25,27,28,28,35,

%T 28,29,35,33,38,35,41,37,37,39,41,46,48,43,51,45,53,48,48,50,50,58,52,

%U 60,54,56,62,56,65,59,61,61,63,70,64,66,71,66,73,69,77,71,79,73,83,74,76,78

%N a(n) = j + k, where u(n) = u(j) + u(k) is the unique sum of Ulam numbers described in A002859 (with 1 <= j < k < n).

%H Eric Weisstein's World of Mathematics, <a href="http://mathworld.wolfram.com/UlamSequence.html">Ulam Sequence</a>.

%H Wikipedia, <a href="http://en.wikipedia.org/wiki/Ulam_number">Ulam number</a>.

%e From _Petros Hadjicostas_, Nov 20 2019: (Start)

%e A002859(3) = 4 = 1 + 3 = A002859(1) + A002859(2), so a(3) = 1 + 2 = 3.

%e A002859(4) = 5 = 1 + 4 = A002859(1) + A002859(3), so a(4) = 1 + 3 = 4.

%e A002859(5) = 6 = 1 + 5 = A002859(1) + A002859(4), so a(5) = 1 + 4 = 5.

%e A002859(6) = 8 = 3 + 5 = A002859(2) + A002859(4), so a(6) = 2 + 4 = 6.

%e A002859(7) = 10 = 4 + 6 = A002859(3) + A002859(5), so a(7) = 3 + 5 = 8.

%e (End)

%p # First we modify _Peter Luschny_'s program from A002858 (with len >= 3):

%p UlamList := proc(len) local isUlam, nextUlam, behead; behead := u -> u[2 .. numelems(u)]; isUlam := proc(n, h, u, r) local hu, tu, hr, tr; hu := u[1]; hr := r[1]; if h = 2 then return false; end if; if hr <= hu then return evalb(h = 1); end if; if hr + hu = n then tu := behead(u); tr := behead(r); return isUlam(n, h + 1, tu, tr); end if; if hr + hu < n then tu := behead(u); return isUlam(n, h, tu, r); end if; tr := behead(r); isUlam(n, h, u, tr); end proc; nextUlam := proc(n, u, r) if isUlam(n, 0, u, r) then if nops(u) = len - 1 then return [op(u), n]; end if; nextUlam(n + 1, [op(u), n], [n, op(r)]); else nextUlam(n + 1, u, r); end if; end proc; nextUlam(3, [1, 3], [3, 1]); end proc:

%p # Next we create a function to calculate a(n) for given n >= 3:

%p a := proc(n) local u, a, i, j: u := 0: if 3 <= n then a := UlamList(n): for i to n - 2 do for j from i + 1 to n - 1 do if a[n] = a[i] + a[j] then u := i+j: end if: end do: end do: end if: u: end proc:

%p # Finally, we create a list of values for a(n):

%p seq(a(n), n=3..100); # _Petros Hadjicostas_, Nov 20 2019

%Y Cf. A002858, A002859, A049877, A049878, A049879.

%K nonn

%O 3,1

%A _Clark Kimberling_

%E Name edited by and typo in the data corrected by _Petros Hadjicostas_, Nov 20 2019

%E More terms from _Petros Hadjicostas_, Nov 20 2019