Files
project-euler/52.fs
T
2025-08-03 20:16:55 -07:00

24 lines
681 B
FSharp

module _52
open System
let findSameDigits =
// todo: optimize with combination of available digits
let powerOfTenNums pow =
let b = Math.Pow(10.0, float pow) |> int
seq {1..(b-1)} |> Seq.map ((+) b)
let multiples num =
seq {num*2..num..(num*6) }
let numSet num =
Set (common.numDigits num)
let rec sd pow =
powerOfTenNums pow
|> Seq.filter ( fun n ->
let nDigits = numSet n
multiples n
|> Seq.map (fun m -> numSet m)
|> Seq.forall (fun mDigits -> nDigits = mDigits)
)
|> Seq.map (fun n -> (n, multiples n |> Seq.toArray))
sd 5