21 lines
592 B
Ruby
21 lines
592 B
Ruby
require 'prime'
|
|
|
|
def jacobsthal(n) = (2**n + n[0])/3
|
|
def jacobsthal_lucas(n) = 2**n + (-1)**n
|
|
def jacobsthal_oblong(n) = jacobsthal(n) * jacobsthal(n+1)
|
|
|
|
puts "First 30 Jacobsthal numbers:"
|
|
puts (0..29).map{|n| jacobsthal(n) }.join(" ")
|
|
|
|
puts "\nFirst 30 Jacobsthal-Lucas numbers: "
|
|
puts (0..29).map{|n| jacobsthal_lucas(n) }.join(" ")
|
|
|
|
puts "\nFirst 20 Jacobsthal-Oblong numbers: "
|
|
puts (0..19).map{|n| jacobsthal_oblong(n) }.join(" ")
|
|
|
|
puts "\nFirst 10 prime Jacobsthal numbers: "
|
|
res = (0..).lazy.filter_map do |i|
|
|
j = jacobsthal(i)
|
|
j if j.prime?
|
|
end
|
|
puts res.take(10).force.join(" ")
|