%I #24 Jul 23 2024 08:56:28
%S 1,2,3,4,5,7,8,9,10,11,13,14,15,16,17,18,19,21,22,23,24,25,26,27,28,
%T 29,30,31,32,33,34,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,
%U 53,54,55,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,73,74,75,76,77,78
%N Beginning with a(1) = 1 and a(2) = 2, a(n) is not equal to the product of two consecutive (distinct) earlier terms.
%H N. J. A. Sloane, <a href="/A121229/b121229.txt">Table of n, a(n) for n = 1..10000</a>
%p A121229 := proc(n)
%p option remember;
%p local a,ispr,i;
%p if n <=2 then
%p n;
%p else
%p for a from procname(n-1)+1 do
%p ispr := false ;
%p for i from 1 to n-2 do
%p if procname(i)*procname(i+1) = a then
%p ispr := true ;
%p break;
%p end if;
%p end do:
%p if not ispr then
%p return a;
%p end if;
%p end do:
%p end if;
%p end proc: # _R. J. Mathar_, May 25 2017
%t a[n_] := a[n] = Module[{k, ispr, i}, If[n <= 2, n, For[k = a[n - 1] + 1, True, k++, ispr = False; For[i = 1, i <= n - 2, i++, If[a[i]*a[i + 1] == k, ispr = True; Break[]]]; If[!ispr, Return[k]]]]];
%t Table[a[n], {n, 1, 100}] (* _Jean-François Alcover_, Sep 23 2022, after _R. J. Mathar_ *)
%o (Python)
%o from itertools import islice
%o def agen(): # generator of terms
%o disallowed, prevk, k = {1, 2}, 2, 3; yield from [1, 2]
%o while True:
%o while k in disallowed: k += 1
%o yield k; disallowed.update([k, k*prevk]); prevk = k
%o print(list(islice(agen(), 72))) # _Michael S. Branicky_, Sep 23 2022
%Y Cf. A005228, A030124.
%Y The complement is A286290, excluding the initial 1.
%K easy,nonn
%O 1,2
%A _Giovanni Teofilatto_, Aug 21 2006