Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions problem1/smith.exs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
defmodule Euler do
defp _multiple_of_3_or_5(num) do
cond do
rem(num, 3) == 0 -> true
rem(num, 5) == 0 -> true
true ->
false
end
end
def run(num) do
Enum.to_list(1..(num-1))
|> Enum.filter( &(_multiple_of_3_or_5(&1)) )
|> Enum.sum
end
end

# IO.puts Euler.run(10)
IO.puts Euler.run(1000)
# IO.puts Euler.run(10_000_000)
18 changes: 18 additions & 0 deletions problem2/smith.exs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
defmodule Euler do

defp _lperms([]), do: [[]]
defp _lperms([head|tail]) do
for new_head <- [head|tail],
# get all perms of list - past perm
# i.e [[0,1,2], [1,0,2]] -- [[0,1,2]]
new_tail <- _lperms([head|tail] -- [new_head]),
do: [new_head | new_tail]
end

def run(range) do
_lperms(Enum.to_list(range))
end
end

IO.inspect Euler.run(0..9)
|> Enum.at(1_000_000 - 1 ) # zero correction