login
a(0) = 1, a(1) = 2; thereafter let x = (a(n-1) mod a(n-2)); then a(n) = a(n-1) + a(x) if x < n, otherwise a(n) = a(n-1).
1

%I #57 Oct 25 2020 08:37:06

%S 1,2,3,5,8,13,26,27,29,32,37,50,50,51,53,56,61,74,125,125,126,128,131,

%T 136,149,200,200,201,203,206,211,224,275,275,276,278,281,286,299,350,

%U 350,351,353,356,361,374,425,425,426,428,431,436,449,500,936,936,937,939,942,947,960,1011

%N a(0) = 1, a(1) = 2; thereafter let x = (a(n-1) mod a(n-2)); then a(n) = a(n-1) + a(x) if x < n, otherwise a(n) = a(n-1).

%H N. J. A. Sloane, <a href="/A336604/b336604.txt">Table of n, a(n) for n = 0..20000</a>

%e a(7) = 27, a(8) = 29, so a(9) = 29 + a(29 mod 27) = 32.

%p a:= proc(n) option remember; `if`(n<2, n+1, (x->

%p a(n-1)+`if`(x<n, a(x), 0))(a(n-1) mod a(n-2)))

%p end:

%p seq(a(n), n=0..100); # _Alois P. Heinz_, Oct 25 2020

%t a[0] = 1; a[1] = 2; a[n_] := a[n] = a[n - 1] + If[(r = Mod[a[n - 1], a[n - 2]]) < n, a[r], 0]; Array[a, 51, 0] (* _Amiram Eldar_, Oct 10 2020 *)

%o (C++)

%o for (int i = 2; i < 10000; i++)

%o {

%o j = a[i - 1];

%o k = a[i - 2];

%o l = j % k;

%o if (int(l) <= int(i)) a[i] = j + a[l]; else a[i] = a[i - 1];

%o }

%Y Cf. A215526.

%K nonn

%O 0,2

%A _Maxim Skorohodov_, Oct 10 2020