OFFSET
1,2
COMMENTS
LINKS
Reinhard Zumkeller, Table of n, a(n) for n = 1..10000
EXAMPLE
36 = 2^2*3^2 with both exponents being equal is not in the sequence.
PROG
(PARI) isok(n) = {my(f = factor(n)); my(nbf = #f~); if (prod(i=1, nbf, prime(i)) ! = prod(i=1, nbf, f[i, 1]), return (0)); for (j=2, nbf, if (f[j, 2] <= f[j-1, 2], return (0)); ); return (1); } \\ Michel Marcus, Jun 04 2014
(Haskell)
import Data.Set (singleton, deleteFindMin, insert)
a133809 n = a133809_list !! (n-1)
a133809_list = 1 : f (singleton (2, 2, 1)) where
f s = y : f (insert (y*p, p, e+1) $ insert (y*q^(e+1), q, e+1) s')
where q = a151800 p
((y, p, e), s') = deleteFindMin s
-- Reinhard Zumkeller, Apr 14 2015
(Python)
from math import prod
from functools import lru_cache
from itertools import count
from sympy import prime, integer_log
from oeis_sequences.OEISsequences import bisection
def A133809(n):
@lru_cache(maxsize=None)
def A076954(n): return prod(prime(k)**k for k in range(1, n+1))
@lru_cache(maxsize=None)
def g(x, m, j): return sum(g(x//(prime(m)**i), m-1, i) for i in range(1, min(j-1, integer_log(x, prime(m))[0])+1)) if m-1 else min(j, x.bit_length())-1
def f(x):
c = n-1+x
for k in count(1):
if A076954(k)>x:
break
c -= g(x, k, integer_log(x, prime(k))[0]+1)
return c
return bisection(f, n, n) # Chai Wah Wu, Mar 23 2026
(Python)
from itertools import islice
from heapq import heappop, heappush
from sympy import factorint, nextprime
def A133809_gen(): # generator of terms if the first n terms are desired
h, hset = [1], {1}
while True:
yield (m:=heappop(h))
ps = factorint(m)
for p in ps:
if p == max(ps) or ps[nextprime(p)]>ps[p]+1:
mp = m*p
if mp not in hset:
heappush(h, mp)
hset.add(mp)
mp = 2 if m==1 else m*nextprime(a:=max(ps.keys()))**(ps[a]+1)
if mp not in hset:
heappush(h, mp)
hset.add(mp)
CROSSREFS
KEYWORD
nonn
AUTHOR
Olivier Gérard, Sep 23 2007
STATUS
approved
