login
A379441
a(1) = 1, a(2) = 2, for a(n) > 2, a(n) is the smallest unused positive number that shares a factor with a(n-1) such that the exponents of each distinct prime factor of a(n-1) differ by one from those of the same prime factors of a(n).
3
1, 2, 4, 6, 9, 3, 18, 12, 8, 16, 24, 20, 14, 36, 30, 25, 5, 50, 15, 63, 27, 45, 21, 49, 7, 98, 28, 10, 44, 26, 60, 22, 52, 34, 76, 40, 48, 32, 64, 96, 80, 56, 68, 38, 84, 46, 100, 70, 75, 35, 147, 77, 121, 11, 242, 33, 72, 108, 90, 39, 99, 42, 92, 54, 81, 135, 117, 51, 126, 57, 144, 120, 112, 88, 116, 62, 132, 58, 124, 66, 140, 74, 156, 82, 148, 78, 153, 69
OFFSET
1,2
COMMENTS
Like A379442, for the terms studied, prime terms p are preceded by p^2 and followed by 2*p^2, can be divisors of terms before they appear as a term themselves, and are distributed in groups of primes, with many primes within the groups differing by six terms. Unlike A379442 not all primes appear in their natural order, although the occurrence of such primes is rare - only three primes are out of order in the first 250000 terms, namely a(13350) = 149, a(18410) = 179, a(21382) = 191. The sequence contains numerous fixed points, these being 1, 2, 34, 46, 218, 370, 410, 462, 474, 1954, 5592, 19186,... . The sequence is conjectured to be a permutation of the positive integers.
LINKS
Scott R. Shannon, Image of the first 250000 terms. The green line is a(n) = n.
EXAMPLE
a(14) = 36 as 36 = 2^2*3^2 while a(13) = 14 = 2*7 which contains 2^1 as a factor, whose power differs by one from 2^2, and 7^1 as a factor, and 36 contains no power of 7. This is the smallest unused number satisfying these criteria. This is the first term to differ from A379440.
PROG
(Python)
from sympy import factorint
from itertools import islice
from collections import Counter
fcache = dict()
def myfactors(n):
global fcache
if n in fcache: return fcache[n]
ans = Counter({p:e for p, e in factorint(n).items()})
fcache[n] = ans
return ans
def agen(): # generator of terms
yield 1
an, a, m = 2, {1, 2}, 3
while True:
yield an
k, fan = m-1, myfactors(an)
sfan = set(fan)
while True:
k += 1
if k in a: continue
fk = myfactors(k)
sfk = set(fk)
if sfk & sfan and all(abs(fk[p]-fan[p])==1 for p in sfan):
an = k
break
a.add(an)
print(list(islice(agen(), 88))) # Michael S. Branicky, May 25 2025
KEYWORD
nonn
AUTHOR
Scott R. Shannon, Dec 23 2024
STATUS
approved