Skip to content

Instantly share code, notes, and snippets.

@krvajal
Created November 6, 2018 18:38
Show Gist options
  • Save krvajal/e515689aa433b5749526d9171fdb5a9f to your computer and use it in GitHub Desktop.
Save krvajal/e515689aa433b5749526d9171fdb5a9f to your computer and use it in GitHub Desktop.
# Enter your code here. Read input from STDIN. Print output to STDOUT
N = gets.to_i
def reverse(number)
result = 0
while number > 0
result = result * 10 + number % 10
number /= 10
end
result
end
def palindromic?(number)
reverse(number) == number
end
def prime?(number, primes)
true unless !primes.empty?
true unless primes.any? do |divisor|
# puts "#{number}, #{divisor}"
(number % divisor).zero?
end
end
def first_n_pal(n)
primes = []
lazy_result = 2.upto(Float::INFINITY).lazy.select do |number|
if prime?(number, primes)
primes = primes.push(number)
next palindromic?(number)
end
false
end
lazy_result.first(n)
end
print first_n_pal(N)

Task

Your task is to print an array of the first palindromic prime numbers. For example, the first palindromic prime numbers are .

Input Format

A single line of input containing the integer .

Constraints

You are not given how big is.

Output Format

Print an array of the first palindromic primes.

Sample Input

5

Sample Output

[2, 3, 5, 7, 11]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment