Ludic numbers: Difference between revisions
Content added Content deleted
(→{{header|Elixir}}: used Enum.drop_every) |
|||
Line 1,000: | Line 1,000: | ||
=={{header|Elixir}}== |
=={{header|Elixir}}== |
||
{{works with|Elixir|1.3.1}} |
|||
<lang elixir>defmodule Ludic do |
<lang elixir>defmodule Ludic do |
||
def numbers(n \\ 100000) do |
def numbers(n \\ 100000) do |
||
Line 1,008: | Line 1,009: | ||
defp numbers(list, nums) when length(list) < hd(list), do: Enum.reverse(nums, list) |
defp numbers(list, nums) when length(list) < hd(list), do: Enum.reverse(nums, list) |
||
defp numbers([h|_]=list, nums) do |
defp numbers([h|_]=list, nums) do |
||
Enum. |
Enum.drop_every(list, h) |> numbers([h | nums]) |
||
|> Enum.filter_map(fn{_,i} -> rem(i,h)!=0 end, fn{n,_} -> n end) |
|||
|> numbers([h | nums]) |
|||
end |
end |
||
Line 1,017: | Line 1,016: | ||
IO.puts "Below 1000: #{length(numbers(1000))}" |
IO.puts "Below 1000: #{length(numbers(1000))}" |
||
tuple = numbers(25000) |> List.to_tuple |
tuple = numbers(25000) |> List.to_tuple |
||
IO.puts "2000..2005th: #{ inspect |
IO.puts "2000..2005th: #{ inspect for i <- 1999..2004, do: elem(tuple, i) }" |
||
ludic = numbers(250) |
ludic = numbers(250) |
||
triple = for x<-ludic, x+2 in ludic, x+6 in ludic, do: [x, x+2, x+6] |
triple = for x <- ludic, x+2 in ludic, x+6 in ludic, do: [x, x+2, x+6] |
||
IO.puts "Triples below 250: #{inspect triple, char_lists: :as_lists}" |
IO.puts "Triples below 250: #{inspect triple, char_lists: :as_lists}" |
||
end |
end |