OFFSET
1,2
COMMENTS
Could be generalized by defining x* = (p_1+v)*(p_2+v) .. (p_m+v) where v is any integer.
It is not difficult to show that these numbers have the form 2^i*3^j with j <= i <= 2j. Hence 1 is the only odd term; also if k|k* then k*|k**. The values of i and j are given in A064514 and A064515. - Vladeta Jovovic and N. J. A. Sloane, Oct 07 2001
LINKS
Amiram Eldar, Table of n, a(n) for n = 1..10000 (terms 1..50 from Harry J. Smith)
FORMULA
Sum_{n>=1} 1/a(n) = 72/55. - Amiram Eldar, Mar 29 2025
EXAMPLE
12 is in the sequence because 12 = 2 * 2 * 3, so 12* is 3 * 3 * 4 = 36 and 36 is divisible by 12.
MATHEMATICA
diQ[n_]:=Divisible[Times@@(#+1&/@Flatten[Table[First[#], {Last[#]}]&/@ FactorInteger[n]]), n]; Select[Range[4500000], diQ] (* Harvey P. Dale, Aug 16 2011 *)
With[{max = 5*10^6}, Select[Flatten[Table[2^i*3^j, {j, 0, Log[6, max]}, {i, j, 2*j}]] // Sort, # <= max &]] (* Amiram Eldar, Mar 29 2025 *)
PROG
(ARIBAS) function p2p3(stop:integer): array; var c, i, j, x: integer; b: boolean; ar: array; begin ar := alloc(array, stop); x := 0; c := 0; b := c < stop; while b do i := x; j := x - i; while b and i >= j do if i <= 2*j then ar[c] := (2^i * 3^j, i, j); inc(c); b := c < stop; end; dec(i); inc(j); end; inc(x); end; return sort(ar, comparefirst); end; function comparefirst(x, y: array): integer; begin return y[0] - x[0]; end; function a064476(maxarg: integer); var j: integer; ar: array; begin ar := p2p3(maxarg); for j := 0 to maxarg - 1 do write(ar[j][0], " "); end; end; a064476(35);
(PARI)
ns(n)= { local(f, p=1); f=factor(n); for(i=1, matsize(f)[1], p*=(1 + f[i, 1])^f[i, 2]); return(p) }
{ n=0; for (m=1, 10^9, if (ns(m)%m == 0, write("b064476.txt", n++, " ", m); if (n==100, break)) ) } \\ Harry J. Smith, Sep 15 2009
(Haskell)
a064476 n = a064476_list !! (n-1)
a064476_list = filter (\x -> a003959 x `mod` x == 0) [1..]
-- Reinhard Zumkeller, Feb 28 2013
(Python)
from sympy import integer_log
def A064476(n):
def bisection(f, kmin=0, kmax=1):
while f(kmax) > kmax: kmax <<= 1
kmin = kmax >> 1
while kmax-kmin > 1:
kmid = kmax+kmin>>1
if f(kmid) <= kmid:
kmax = kmid
else:
kmin = kmid
return kmax
def f(x): return n+x-sum(max(0, min((i<<1)+1, (x//3**i).bit_length())-i) for i in range(integer_log(x, 3)[0]+1))
return bisection(f, n, n) # Chai Wah Wu, Mar 26 2025
CROSSREFS
KEYWORD
nonn,easy,nice
AUTHOR
Jonathan Ayres (jonathan.ayres(AT)btinternet.com), Oct 06 2001
EXTENSIONS
More terms from Vladeta Jovovic, Oct 07 2001
STATUS
approved
