login
a(n) is the smallest proper multiple of n whose digit product is the same as the digit product of n; 0 if no such number exists.
0

%I #96 May 25 2021 02:03:20

%S 11,12,1113,212,15,132,11711,24,11133,20,1111,11112,1131,21112,11115,

%T 32,71111,11124,133,40,11111121,1122,161,14112,125,1612,11111111172,

%U 224,3132,60,11111113,1312,11111133,612,315,1332,11137,342,11193,80,1111141,11214,11223

%N a(n) is the smallest proper multiple of n whose digit product is the same as the digit product of n; 0 if no such number exists.

%C Every odd integer k not ending with 5 has a multiple that is a repunit (see A099679), hence a(n) <= the concatenation of this repunit with this odd number (see example a(33)).

%F a(10*k) = 20*k.

%e a(16) = 32 because 32 is the smallest proper multiple of 16 such that 1*6 = 3*2.

%e a(33) = 11111133 is the concatenation of 111111 (that is the smallest repunit multiple of 33) with 33.

%t prodig[n_] := Times @@ IntegerDigits[n]; a[n_] := Module[{k = 2*n, p = prodig[n]}, While[prodig[k] != p, k += n]; k]; Array[a, 20] (* _Amiram Eldar_, Jan 15 2021 *)

%o (PARI) f(n) = vecprod(digits(n)); \\ A007954

%o a(n) = my(x = f(n), k = 2); while(f(k*n) != x, k++); k*n; \\ _Michel Marcus_, Jan 15 2021

%o (Python)

%o from math import prod

%o def pd(n): return prod(map(int, str(n)))

%o def a(n):

%o pdn, f = pd(n), 2

%o while pd(f*n) != pdn: f += 1

%o return f*n

%o print([a(n) for n in range(1, 27)]) # _Michael S. Branicky_, Jan 16 2021

%Y Cf. A007954, A069035, A087304.

%K nonn,base

%O 1,1

%A _Bernard Schott_, Jan 15 2021

%E More terms from _Amiram Eldar_, Jan 15 2021