Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Prime
- @primes = {}
- @next = 2
- def self.include?(n)
- while @next <= n
- @primes[@next] = 0
- @primes[@next*@next] = @next
- while @primes[@next]
- @next += 1
- if @primes[@next]
- m = @primes[@next]
- i = @next + m
- while @primes[i]
- i += m
- end
- @primes[i] = m
- end
- end
- end
- @primes[n] == 0
- end
- def self.next
- @ptr ||= 1
- @ptr += 1
- while not include? @ptr
- @ptr += 1
- end
- return @ptr
- end
- def self.each
- while true
- yield self.next
- end
- end
- end
- class Fixnum
- def prime?
- Prime.include? self
- end
- end
Add Comment
Please, Sign In to add comment