Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
14
Task/Amicable-pairs/Elixir/amicable-pairs.elixir
Normal file
14
Task/Amicable-pairs/Elixir/amicable-pairs.elixir
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
defmodule Proper do
|
||||
def divisors(1), do: []
|
||||
def divisors(n), do: [1 | divisors(2,n,:math.sqrt(n))] |> Enum.sort
|
||||
|
||||
defp divisors(k,_n,q) when k>q, do: []
|
||||
defp divisors(k,n,q) when rem(n,k)>0, do: divisors(k+1,n,q)
|
||||
defp divisors(k,n,q) when k * k == n, do: [k | divisors(k+1,n,q)]
|
||||
defp divisors(k,n,q) , do: [k,div(n,k) | divisors(k+1,n,q)]
|
||||
end
|
||||
|
||||
map = Map.new(1..20000, fn n -> {n, Proper.divisors(n) |> Enum.sum} end)
|
||||
Enum.filter(map, fn {n,sum} -> map[sum] == n and n < sum end)
|
||||
|> Enum.sort
|
||||
|> Enum.each(fn {i,j} -> IO.puts "#{i} and #{j}" end)
|
||||
Loading…
Add table
Add a link
Reference in a new issue