24 lines
466 B
Ruby
24 lines
466 B
Ruby
def left_truncatable?(n)
|
|
truncatable?(n) {|i| i.to_s[1..-1].to_i}
|
|
end
|
|
|
|
|
|
def right_truncatable?(n)
|
|
truncatable?(n) {|i| i/10}
|
|
end
|
|
|
|
def truncatable?(n, &trunc_func)
|
|
return false if n.to_s.include? "0"
|
|
loop do
|
|
n = trunc_func.call(n)
|
|
return true if n.zero?
|
|
return false unless Prime.prime?(n)
|
|
end
|
|
end
|
|
|
|
require 'prime'
|
|
primes = Prime.each(1_000_000).to_a.reverse
|
|
|
|
p primes.detect {|p| left_truncatable? p}
|
|
p primes.detect {|p| right_truncatable? p}
|