2016 Update
This commit is contained in:
parent
948b86eafa
commit
dcf5d15da3
7965 changed files with 139854 additions and 31002 deletions
|
|
@ -0,0 +1,28 @@
|
|||
defmodule SternBrocot do
|
||||
def sequence do
|
||||
Stream.unfold({0,{1,1}}, fn {i,acc} ->
|
||||
a = elem(acc, i)
|
||||
b = elem(acc, i+1)
|
||||
{a, {i+1, Tuple.append(acc, a+b) |> Tuple.append(b)}}
|
||||
end)
|
||||
end
|
||||
|
||||
def task do
|
||||
IO.write "First fifteen members of the sequence:\n "
|
||||
IO.inspect Enum.take(sequence, 15)
|
||||
Enum.each(Enum.concat(1..10, [100]), fn n ->
|
||||
i = Enum.find_index(sequence, &(&1==n)) + 1
|
||||
IO.puts "#{n} first appears at #{i}"
|
||||
end)
|
||||
Enum.take(sequence, 1000)
|
||||
|> Enum.chunk(2,1)
|
||||
|> Enum.all?(fn [a,b] -> gcd(a,b) == 1 end)
|
||||
|> if(do: "All GCD's are 1", else: "Whoops, not all GCD's are 1!")
|
||||
|> IO.puts
|
||||
end
|
||||
|
||||
defp gcd(a,0), do: abs(a)
|
||||
defp gcd(a,b), do: gcd(b, rem(a,b))
|
||||
end
|
||||
|
||||
SternBrocot.task
|
||||
Loading…
Add table
Add a link
Reference in a new issue