24 lines
438 B
Crystal
24 lines
438 B
Crystal
|
# miscellaneous stuff
|
||
|
|
||
|
module Euler
|
||
|
def self.eratosthenes_sieve(n)
|
||
|
sieve = Array.new(n + 1, true)
|
||
|
sieve[0] = false
|
||
|
sieve[1] = false
|
||
|
|
||
|
2.step(to: Math.sqrt(n)) do |i|
|
||
|
if sieve[i]
|
||
|
(i * i).step(to: n, by: i) do |j|
|
||
|
sieve[j] = false
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
result = sieve.map_with_index { |b, i| b ? i : nil }.compact
|
||
|
end
|
||
|
|
||
|
def self.palindrome?(x)
|
||
|
x.to_s.reverse == x.to_s
|
||
|
end
|
||
|
end
|