Ludic numbers: Difference between revisions
Content added Content deleted
No edit summary |
(Added Elixir) |
||
Line 408: | Line 408: | ||
(233 235 239) |
(233 235 239) |
||
</pre> |
</pre> |
||
=={{header|Clojure}}== |
=={{header|Clojure}}== |
||
<lang clojure>(defn ints-from [n] |
<lang clojure>(defn ints-from [n] |
||
Line 615: | Line 616: | ||
}</lang> |
}</lang> |
||
The result is the same. |
The result is the same. |
||
=={{header|Eiffel}}== |
=={{header|Eiffel}}== |
||
<lang Eiffel> |
<lang Eiffel> |
||
Line 765: | Line 767: | ||
Number of Ludic numbers smaller than 1000. |
Number of Ludic numbers smaller than 1000. |
||
142 |
142 |
||
</pre> |
|||
=={{header|Elixir}}== |
|||
<lang elixir>defmodule Ludic do |
|||
def numbers, do: numbers(100000) |
|||
def numbers(n) when is_integer(n) do |
|||
[h|t] = Enum.to_list(1..n) |
|||
numbers(t, [h]) |
|||
end |
|||
defp numbers(list, nums) when length(list) < hd(list), do: Enum.reverse(nums, list) |
|||
defp numbers(list, nums) do |
|||
h = hd(list) |
|||
ludic = Enum.with_index(list) |> |
|||
Enum.filter_map(fn{_,i} -> rem(i,h)!=0 end, fn{n,_} -> n end) |
|||
numbers(ludic, [h | nums]) |
|||
end |
|||
def task do |
|||
IO.puts "First 25 : #{inspect numbers(200) |> Enum.take(25)}" |
|||
IO.puts "Below 1000: #{length(numbers(1000))}" |
|||
tuple = numbers(25000) |> List.to_tuple |
|||
IO.puts "2000..2005th: #{ inspect Enum.map(1999..2004, fn i -> elem(tuple, i) end) }" |
|||
ludic = numbers(250) |
|||
triple = for x<-ludic, Enum.member?(ludic, x+2), Enum.member?(ludic, x+6), do: [x, x+2, x+6] |
|||
IO.puts "Triples below 250: #{inspect triple, char_lists: :as_lists}" |
|||
end |
|||
end |
|||
Ludic.task</lang> |
|||
{{out}} |
|||
<pre> |
|||
First 25 : [1, 2, 3, 5, 7, 11, 13, 17, 23, 25, 29, 37, 41, 43, 47, 53, 61, 67, 71, 77, 83, 89, 91, 97, 107] |
|||
Below 1000: 142 |
|||
2000..2005th: [21475, 21481, 21487, 21493, 21503, 21511] |
|||
Triples below 250: [[1, 3, 7], [5, 7, 11], [11, 13, 17], [23, 25, 29], [41, 43, 47], [173, 175, 179], [221, 223, 227], [233, 235, 239]] |
|||
</pre> |
</pre> |
||