A121229 Beginning with a(1) = 1 and a(2) = 2, a(n) is not equal to the product of two consecutive (distinct) earlier terms.
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, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77, 78
Offset: 1
Links
- N. J. A. Sloane, Table of n, a(n) for n = 1..10000
Programs
-
Maple
A121229 := proc(n) option remember; local a,ispr,i; if n <=2 then n; else for a from procname(n-1)+1 do ispr := false ; for i from 1 to n-2 do if procname(i)*procname(i+1) = a then ispr := true ; break; end if; end do: if not ispr then return a; end if; end do: end if; end proc: # R. J. Mathar, May 25 2017
-
Mathematica
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]]]]]; Table[a[n], {n, 1, 100}] (* Jean-François Alcover, Sep 23 2022, after R. J. Mathar *)
-
Python
from itertools import islice def agen(): # generator of terms disallowed, prevk, k = {1, 2}, 2, 3; yield from [1, 2] while True: while k in disallowed: k += 1 yield k; disallowed.update([k, k*prevk]); prevk = k print(list(islice(agen(), 72))) # Michael S. Branicky, Sep 23 2022