solve/1
% Get the lowest integer with persistence P
solve(P)->
solve(P, 0).
% solve/2
solve(P, I)->
case persistence(I) of
P-> I;
_-> solve(P, 1+I)
end.
% persistence/1
% Get the multiplicative persistence of integer N
persistence(N)->
persistence(N, 0).
% persistence/2
persistence(N, Rounds) when N < 10 ->
Rounds;
persistence(N, Rounds)->
persistence(integer_to_list(N), 1, Rounds + 1).
% persistence/3
persistence([], Product, Rounds) when Product > 9 ->
% io:format("round ~p product = ~p~n", [Rounds, Product]),
persistence(integer_to_list(Product), 1, Rounds + 1);
persistence([], _Product, Rounds)->
Rounds;
persistence([H|T], Product, Rounds)->
% io:format("H= ~p~n",[H]),
persistence( T, Product * (H-$0), Rounds).
679.
% Get the lowest integer with persistence P
solve(P)->
solve(P, 0).
% solve/2
solve(P, I)->
case persistence(I) of
P-> I;
_-> solve(P, 1+I)
end.
% persistence/1
% Get the multiplicative persistence of integer N
persistence(N)->
persistence(N, 0).
% persistence/2
persistence(N, Rounds) when N < 10 ->
Rounds;
persistence(N, Rounds)->
persistence(integer_to_list(N), 1, Rounds + 1).
% persistence/3
persistence([], Product, Rounds) when Product > 9 ->
% io:format("round ~p product = ~p~n", [Rounds, Product]),
persistence(integer_to_list(Product), 1, Rounds + 1);
persistence([], _Product, Rounds)->
Rounds;
persistence([H|T], Product, Rounds)->
% io:format("H= ~p~n",[H]),
persistence( T, Product * (H-$0), Rounds).
679.