|
|
A189398
|
|
a(n) = 2^d(1) * 3^d(2) * ... * prime(k)^d(k), where d(1)d(2)...d(k) is the decimal representation of n.
|
|
6
|
|
|
2, 4, 8, 16, 32, 64, 128, 256, 512, 2, 6, 18, 54, 162, 486, 1458, 4374, 13122, 39366, 4, 12, 36, 108, 324, 972, 2916, 8748, 26244, 78732, 8, 24, 72, 216, 648, 1944, 5832, 17496, 52488, 157464, 16, 48, 144, 432, 1296, 3888, 11664, 34992, 104976, 314928, 32
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,1
|
|
COMMENTS
|
Not the same as A061509: a(n) = A061509(n) for n <= 100; a(101)=2^1*3^0*5^1=10 <> A061509(101)=2^1*3^1=6;
a(n*A011557(k)) = a(n): trailing zeros don't matter;
A001221(a(n)) = A055640(n): number of distinct prime factors of a(n) = number of nonzero digits of n;
A001222(a(n)) = A007953(n): number of all prime factors of a(n) = sum of digits of n;
a(81312000) = 2^8*3^1*5^3*7^1*11^2*13^0*17^0*19^0 = 81312000, the smallest fixed point, is called the Meertens number.
|
|
LINKS
|
|
|
MAPLE
|
a:= n-> `if`(n=0, 1, ithprime(length(n))^irem(n, 10, 'm') *a(m)):
|
|
MATHEMATICA
|
a[n_] := (p = Prime[Range[Length[d = IntegerDigits[n]]]]; Times @@ (p^d)); Array[a, 50] (* Jean-François Alcover, Jan 09 2016 *)
|
|
PROG
|
(Haskell)
import Data.Char (digitToInt)
import Data.List (findIndices)
a189398 n = product $ zipWith (^) a000040_list (map digitToInt $ show n)
-- Two computations of the Meertens number: the first is brute force,
meertens = map succ $ findIndices (\x -> a189398 x == x) [1..]
-- ... and the second is more efficient, from Bird reference, page 87:
meertens' k = [n | (n, g) <- candidates (0, 1), n == g] where
candidates = concat . map (search pps) . tail . labels ps
ps : pps = map (\p -> iterate (p *) 1) $ take k a000040_list
search [] x = [x]
search (ps:pps) x = x : concat (map (search pps) (labels ps x))
labels ps (n, g) = zip (map (10*n +) [0..9]) (chop $ map (g *) ps)
chop = takeWhile (< 10^k)
-- Time and space required, GHC interpreted, Mac OS X, 2.66 GHz:
-- for >head meertens: (466.87 secs, 254780027728 bytes);
-- for >meertens' 8: ( 0.28 secs, 62027124 bytes).
(Python)
from sympy import prime
from operator import mul
from functools import reduce
....return reduce(mul, (prime(i)**int(d) for i, d in enumerate(str(n), start=1)))
# implementation using recursion
....nlen = len(n)
....return _A189398(n[:-1])*prime(nlen)**int(n[-1]) if nlen > 1 else 2**int(n)
|
|
CROSSREFS
|
|
|
KEYWORD
|
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|