%I #32 Jan 09 2016 11:54:55
%S 2,4,8,16,32,64,128,256,512,2,6,18,54,162,486,1458,4374,13122,39366,4,
%T 12,36,108,324,972,2916,8748,26244,78732,8,24,72,216,648,1944,5832,
%U 17496,52488,157464,16,48,144,432,1296,3888,11664,34992,104976,314928,32
%N 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.
%C 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;
%C a(A052382(n)) = A000079(A000030(a052382(n))) = A061509(A052382(n));
%C a(A002275(n)) = A002110(n): a(n-th rep-unit) = n-th primorial;
%C a(n*A011557(k)) = a(n): trailing zeros don't matter;
%C A001221(a(n)) = A055640(n): number of distinct prime factors of a(n) = number of nonzero digits of n;
%C A001222(a(n)) = A007953(n): number of all prime factors of a(n) = sum of digits of n;
%C 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.
%H Reinhard Zumkeller, <a href="/A189398/b189398.txt">Table of n, a(n) for n = 1..10000</a>
%H Richard S. Bird, <a href="http://journals.cambridge.org/action/displayAbstract?fromPage=online&aid=44141&fulltextType=RL&fileId=S0956796897002931">Functional Pearl: Meertens number</a>, Journal of Functional Programming 8 (1), Jan 1998, 83-88.
%H Wikipedia, <a href="http://en.wikipedia.org/wiki/Meertens_number">Meertens number</a>
%p a:= n-> `if`(n=0, 1, ithprime(length(n))^irem(n, 10, 'm') *a(m)):
%p seq(a(n), n=1..110); # _Alois P. Heinz_, May 04 2011
%t a[n_] := (p = Prime[Range[Length[d = IntegerDigits[n]]]]; Times @@ (p^d)); Array[a, 50] (* _Jean-François Alcover_, Jan 09 2016 *)
%o (Haskell)
%o import Data.Char (digitToInt)
%o import Data.List (findIndices)
%o a189398 n = product $ zipWith (^) a000040_list (map digitToInt $ show n)
%o -- Two computations of the Meertens number: the first is brute force,
%o meertens = map succ $ findIndices (\x -> a189398 x == x) [1..]
%o -- ... and the second is more efficient, from Bird reference, page 87:
%o meertens' k = [n | (n,g) <- candidates (0,1), n == g] where
%o candidates = concat . map (search pps) . tail . labels ps
%o ps : pps = map (\p -> iterate (p *) 1) $ take k a000040_list
%o search [] x = [x]
%o search (ps:pps) x = x : concat (map (search pps) (labels ps x))
%o labels ps (n,g) = zip (map (10*n +) [0..9]) (chop $ map (g *) ps)
%o chop = takeWhile (< 10^k)
%o -- Time and space required, GHC interpreted, Mac OS X, 2.66 GHz:
%o -- for >head meertens: (466.87 secs, 254780027728 bytes);
%o -- for >meertens' 8: ( 0.28 secs, 62027124 bytes).
%o (PARI) a(n)=my(d=digits(n),p=primes(#d)); prod(i=1,#d,p[i]^d[i]) \\ _Charles R Greathouse IV_, Aug 19 2014
%o (Python)
%o from sympy import prime
%o from operator import mul
%o from functools import reduce
%o def A189398(n):
%o ....return reduce(mul, (prime(i)**int(d) for i,d in enumerate(str(n),start=1)))
%o # implementation using recursion
%o def _A189398(n):
%o ....nlen = len(n)
%o ....return _A189398(n[:-1])*prime(nlen)**int(n[-1]) if nlen > 1 else 2**int(n)
%o def A189398(n):
%o ....return _A189398(str(n))
%o # _Chai Wah Wu_, Aug 31 2014
%Y Cf. A000040.
%K nonn,base,look
%O 1,1
%A _Reinhard Zumkeller_, May 03 2011