Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

43 lines (33 sloc) 1.247 kb
%% Problem
%% ---------------------
%% Take the number 192 and multiply it by each of 1, 2, and 3:
%%
%% 192 x 1 = 192
%% 192 x 2 = 384
%% 192 x 3 = 576
%%
%% By concatenating each product we get the 1 to 9 pandigital, 192384576.
%% We will call 192384576 the concatenated product of 192 and (1,2,3)
%%
%% The same can be achieved by starting with 9 and multiplying by 1, 2, 3,
%% 4, and 5, giving the pandigital, 918273645, which is the concatenated
%% product of 9 and (1,2,3,4,5).
%%
%% What is the largest 1 to 9 pandigital 9-digit number that can be formed
%% as the concatenated product of an integer with (1,2, ... , n) where n 1?
%% ---------------------
-module(p038).
-export([solve/0]).
-include_lib("eunit/include/eunit.hrl").
solve() ->
[ {N,M,multiply_concat(N,M)} || N <- lists:seq(9,10000), M <- lists:seq(1,8), is_pandigital(N,M) ].
is_pandigital(N, M) ->
is_pandigital(multiply_concat(N, M)).
multiply_concat(N, M) ->
lists:flatten([ integer_to_list(N*X) || X <- lists:seq(1,M) ]).
is_pandigital(String) ->
lists:sort(String) == "123456789".
is_pandigital_string_test() ->
?assertEqual(true, is_pandigital("918273645")).
is_pandigital_number_test() ->
?assertEqual(true, is_pandigital(192, 3)).
Jump to Line
Something went wrong with that request. Please try again.