# Project Euler – Problem 38 Solution

#### 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?

#### Solution

```// define function which checks if a given number is 1-9 pandigital
let isPandigital n =
let str = n.ToString()
[1..9]
|> List.map string
|> List.forall (fun x -> str.Contains(x) && str.IndexOf(x) = str.LastIndexOf(x))

// define function to generate the (possible) pandigital sequence
let getConcatProduct n =
// define recursive inner function
let rec genSeq n' (digits:string) n=
let digits' = digits + (n' * n).ToString()
if digits'.Length > 9 then digits else genSeq (n'+1) digits' n
genSeq 1 "" n