A379442 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), while the exponents of each distinct prime factor of a(n) differ by one from those of the same prime factors of a(n-1).
1, 2, 4, 6, 9, 3, 18, 12, 8, 16, 24, 20, 14, 44, 10, 25, 5, 50, 15, 63, 27, 45, 21, 49, 7, 98, 28, 22, 52, 30, 36, 42, 68, 26, 60, 34, 76, 40, 48, 32, 64, 96, 80, 56, 92, 38, 84, 46, 116, 62, 132, 58, 124, 66, 117, 33, 90, 39, 99, 51, 126, 57, 153, 54, 81, 135, 162, 108, 72, 156, 70, 75, 35, 147, 77, 121, 11, 242, 55, 150, 65, 169, 13, 338, 91, 245, 119, 289
Offset: 1
Keywords
Examples
a(3) = 4 as 4 is unused and shares a factor with a(2) = 2, while 4 = 2^2 which has 2 as the exponent of the prime 2, while a(2) = 2^1 which has exponent 1. As these exponents differ by one, 4 is acceptable. a(5) = 9 as 9 is unused and shares a factor with a(4) = 6, while 9 = 3^2 which has 2 as the exponent of the prime 3 and exponent 0 for the prime 2, while a(4) = 2^1*3^1 which has exponent 1 for both primes 2 and 3. As these both differ by one, 9 is acceptable. Note that although 8 shares a factor with 6, 8 = 2^3 which has exponent 3 for the prime 2, and as that does not differ by one from the exponent 1 for the prime 2 in 6, 8 cannot be chosen. This is the first term to differ from A379248.
Links
- Scott R. Shannon, Table of n, a(n) for n = 1..20000
- Scott R. Shannon, Colored image of the first 20000 terms. The terms with one, two, three,... as their maximum prime factorization exponent are colored red, orange, yellow,..., violet, with white terms having exponents > 8. The green line is a(n) = n.
Crossrefs
Programs
-
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 sfk | sfan): an = k break a.add(an) print(list(islice(agen(), 88))) # Michael S. Branicky, Jan 05 2025
Comments