Fortunate numbers: Difference between revisions
Content added Content deleted
(→{{header|Haskell}}: added solution) |
(→{{header|Ruby}}: Add Ruby) |
||
Line 439: | Line 439: | ||
</pre> |
</pre> |
||
=={{header|Ruby}}== |
|||
<lang ruby>require "gmp" |
|||
primorials = Enumerator.new do |y| |
|||
cur = prod = 1 |
|||
loop {y << prod *= (cur = GMP::Z(cur).nextprime)} |
|||
end |
|||
limit = 50 |
|||
fortunates = [] |
|||
while fortunates.size < limit*2 do |
|||
prim = primorials.next |
|||
fortunates << (GMP::Z(prim+2).nextprime - prim) |
|||
fortunates = fortunates.uniq.sort |
|||
end |
|||
p fortunates[0, limit] |
|||
</lang> |
|||
{{out}} |
|||
<pre>[3, 5, 7, 13, 17, 19, 23, 37, 47, 59, 61, 67, 71, 79, 89, 101, 103, 107, 109, 127, 151, 157, 163, 167, 191, 197, 199, 223, 229, 233, 239, 271, 277, 283, 293, 307, 311, 313, 331, 353, 373, 379, 383, 397, 401, 409, 419, 421, 439, 443] |
|||
</pre> |
|||
=={{header|Sidef}}== |
=={{header|Sidef}}== |
||
<lang ruby>func fortunate(n) { |
<lang ruby>func fortunate(n) { |