irb(main):001:0> class Enumerator::Lazy
irb(main):002:1> def at(nth)
irb(main):003:2> self.drop(nth).first
irb(main):004:2> end
irb(main):005:1> def slice(lower, upper)
irb(main):006:2> self.drop(lower).take(upper - lower + 1)
irb(main):007:2> end
irb(main):008:1> end
=> nil
irb(main):009:0> require 'prime'
=> true
irb(main):010:0> twin_prime = Prime.lazy.each_cons(2).select{|p,r| r-p == 2}
=> #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: Prime>:each_cons(2)>:select>
irb(main):011:0> twin_prime.at 0
=> [3, 5]
irb(main):012:0> twin_prime.at 1
=> [5, 7]
irb(main):013:0> twin_prime.at 2
=> [11, 13]
irb(main):014:0> twin_prime.at 3
=> [17, 19]
irb(main):015:0> twin_prime.at 100
=> [3851, 3853]
Thursday, April 18, 2013
Twin prime on Enumerator::Lazy
Labels:
Ruby
About twin prime : http://en.wikipedia.org/wiki/Twin_prime
No comments:
Post a Comment