|
MATHEMATICA
|
Do[ d = Sort[ IntegerDigits[n]]; While[ First[d] == 0, d = Drop[d, 1]]; If[n == Apply[ Plus, d] Apply[ Times, d], Print[n]], {n, 0, 5*10^7} ]
|
|
PROGRAM
|
(ARIBAS): function a066282(a, b: integer); var n, k, j, p, d: integer; s: string; begin for n := a to b do s := itoa(n); k := 0; p := 1; for j := 0 to length(s) - 1 do d := atoi(s[j..j]); k := k + d; if d > 0 then p := p*d; end; end; if n = p*k then write(n, ", "); end; end; end; a066282(0, 25000). (PARI): a066282(a, b) = local(n, k, q, p, d); for(n=a, b, k=0; p=1; q=n; while(q>0, d=divrem(q, 10); q=d[1]; k=k+d[2]; p=p*max(1, d[2])); if(n==p*k, print1(n, ", "))) a066282(0, 25000)
|