OFFSET
1,2
COMMENTS
Sequence begins with 1 and the first 2 odd primes.
a(3k+1) is even for k > 0 as consequence of definition and since 2 is the smallest prime and numbers are either even or odd. Unlike A085229, even numbers in this sequence do not appear in order. Hence a(3k) and a(3k+2) are odd.
The smallest missing number u is even, and there is a smallest missing odd number v that applies to a(3k) and a(3k+2).
Let q be odd and prime. In a given interval i <= n <= j, we either have 2q | a(n) or we have q | a(n) odd.
Regarding 6 | a(n), there are phases i <= n <= j where 6 | a(3k+1) and no a(n) mod 6 = 3 appear. These begin when 3 | a(3k+1) and prevent the entry of 3 | v. Whereupon all u such that 6 | u have been consumed, 3 | a(3k+r), r != 1 occurs, and we move into a phase where we have a(n) mod 6 = 3, but no 6 | a(3k+1) appear. This occurs until all v such that 3 | v have been consumed, and 3 | a(3k+1) once again.
Conjecture: the sequence is a permutation of the natural numbers.
LINKS
Michael De Vlieger, Table of n, a(n) for n = 1..10000
Michael De Vlieger, Annotated log-log scatterplot of a(n), n = 1..2^12, showing odd numbers congruent to 1 or 5 (mod 6) in green, odd numbers congruent to 3 (mod 6) in blue, even numbers congruent to 2 or 4 (mod 6) in red, and numbers divisible by 6 in amber.
MAPLE
ina := proc(n) false end: # adapted from code for A352950
a := proc (n) option remember; local k;
if n < 4 then k := 2*n-1
else for k from 2 while ina(k) or igcd(k, a(n-1)) <> 1 or igcd(k, a(n-2)) <>1
do
end do
end if; ina(k):= true; k
end proc:
seq(a(n), n = 1 .. 100); # -David James Sycamore, Apr 17 2022
MATHEMATICA
nn = 66, c[_] = 0; Array[Set[{a[#1], c[#2]}, {#2, #1}] & @@ {#, 2 # - 1} &, 3]; u = 2; Do[k = u; m = LCM @@ Array[a[i - #] &, 2]; While[Nand[c[k] == 0, CoprimeQ[m, k]], k++]; Set[{a[i], c[k]}, {k, i}]; If[a[i] == u, While[c[u] > 0, u++]], {i, 4, nn}]; Array[a, nn]
PROG
(Python)
from math import gcd
from itertools import islice
def agen(): # generator of terms
aset, b, c = {1, 3, 5}, 3, 5
yield from [1, b, c]
while True:
k = 1
while k in aset or any(gcd(t, k) != 1 for t in [b, c]): k+= 1
b, c = c, k
aset.add(k)
yield k
print(list(islice(agen(), 68))) # Michael S. Branicky, Apr 14 2022
CROSSREFS
KEYWORD
nonn
AUTHOR
Michael De Vlieger, Apr 14 2022
STATUS
approved