login
a(1) = 1, a(2) = 2; for n >= 3, a(n) = the smallest positive integer not occurring earlier in the sequence such that gcd(a(n-1), a(n)) is a prime.
5

%I #28 Oct 14 2022 08:55:41

%S 1,2,4,6,3,9,12,10,5,15,18,8,14,7,21,24,22,11,33,27,30,16,26,13,39,36,

%T 34,17,51,42,20,25,35,28,38,19,57,45,40,46,23,69,48,50,32,54,44,55,60,

%U 58,29,87,63,49,56,62,31,93,66,52,65,70,64,74,37,111,72,75,78,68,82,41

%N a(1) = 1, a(2) = 2; for n >= 3, a(n) = the smallest positive integer not occurring earlier in the sequence such that gcd(a(n-1), a(n)) is a prime.

%H N. J. A. Sloane, <a href="/A122280/b122280.txt">Table of n, a(n) for n = 1..5002</a> [Computed using Ray Chandler's Mma program]

%t f[s_] := Block[{k = 1}, While[MemberQ[s, k] || ! PrimeQ[GCD[Last[s], k]], k++ ]; Append[s, k] ]; Nest[f, {1, 2}, 75] (* _Ray Chandler_, Aug 30 2006 *)

%o (Python)

%o from math import gcd

%o from sympy import isprime

%o from itertools import islice

%o def agen(): # generator of terms

%o aset, an, mink = {1, 2}, 2, 3

%o yield from sorted(aset)

%o while True:

%o k = mink

%o while k in aset or not isprime(gcd(an, k)): k += 1

%o an = k; aset.add(an); yield an

%o while mink in aset: mink += 1

%o print(list(islice(agen(), 72))) # _Michael S. Branicky_, Oct 13 2022

%Y Cf. A122281, A064413.

%K nonn

%O 1,2

%A _Leroy Quet_, Aug 29 2006

%E Extended by _Ray Chandler_ and _Klaus Brockhaus_, Aug 30 2006