Skip to content

Commit 9359834

Browse files
authored
Add Prime Number in Elixir (#6081)
1 parent 63e770e commit 9359834

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

archive/e/elixir/prime-number.ex

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
defmodule PrimeNumber do
2+
@doc """
3+
Determines whether `n` is a prime number.
4+
"""
5+
@spec prime?(n :: integer()) :: bool()
6+
def prime?(0), do: false
7+
def prime?(1), do: false
8+
9+
def prime?(n) do
10+
high = trunc(:math.sqrt(n))
11+
12+
if high < 2 do
13+
true
14+
else
15+
Enum.all?(2..high, &(rem(n, &1) != 0))
16+
end
17+
end
18+
end
19+
20+
with [arg] <- System.argv(),
21+
{n, ""} when n >= 0 <- Integer.parse(arg) do
22+
IO.puts(if PrimeNumber.prime?(n), do: "prime", else: "composite")
23+
else
24+
_ -> IO.puts("Usage: please input a non-negative integer")
25+
end

0 commit comments

Comments
 (0)