Guest User

Untitled

a guest
Jun 22nd, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 0.69 KB | None | 0 0
  1. class Prime
  2.   @primes = {}
  3.   @next = 2
  4.   def self.include?(n)
  5.     while @next <= n
  6.       @primes[@next] = 0
  7.       @primes[@next*@next] = @next
  8.  
  9.       while @primes[@next]
  10.         @next += 1
  11.         if @primes[@next]
  12.           m = @primes[@next]
  13.           i = @next + m
  14.           while @primes[i]
  15.             i += m
  16.           end
  17.           @primes[i] = m
  18.         end
  19.       end
  20.     end
  21.  
  22.     @primes[n] == 0
  23.   end
  24.  
  25.   def self.next
  26.     @ptr ||= 1
  27.     @ptr += 1
  28.     while not include? @ptr
  29.       @ptr += 1
  30.     end
  31.  
  32.     return @ptr
  33.   end
  34.  
  35.   def self.each
  36.     while true
  37.       yield self.next
  38.     end
  39.   end
  40. end
  41.  
  42. class Fixnum
  43.   def prime?
  44.     Prime.include? self
  45.   end
  46. end
Add Comment
Please, Sign In to add comment