From 44d07a67a443382df596b702307e9533ce787977 Mon Sep 17 00:00:00 2001 From: "exercism-solutions-syncer[bot]" <211797793+exercism-solutions-syncer[bot]@users.noreply.github.com> Date: Wed, 13 Aug 2025 11:17:17 +0000 Subject: [PATCH] [Sync Iteration] elixir/sum-of-multiples/2 --- .../sum-of-multiples/2/lib/sum_of_multiples.ex | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 solutions/elixir/sum-of-multiples/2/lib/sum_of_multiples.ex diff --git a/solutions/elixir/sum-of-multiples/2/lib/sum_of_multiples.ex b/solutions/elixir/sum-of-multiples/2/lib/sum_of_multiples.ex new file mode 100644 index 0000000..582cadf --- /dev/null +++ b/solutions/elixir/sum-of-multiples/2/lib/sum_of_multiples.ex @@ -0,0 +1,17 @@ +defmodule SumOfMultiples do + @doc """ + Adds up all numbers from 1 to a given end number that are multiples of the factors provided. + """ + @spec to(non_neg_integer, [non_neg_integer]) :: non_neg_integer + def to(limit, factors) do + gen_scores = fn + 0 -> [0] + factor -> factor |> Range.new(limit - 1, factor) |> Range.to_list() + end + + factors + |> Enum.flat_map(gen_scores) + |> Enum.uniq() + |> Enum.sum() + end +end