Method: Prime#prime?
- Defined in:
- lib/prime.rb
#prime?(value, generator = Prime::Generator23.new) ⇒ Boolean
Returns true if value
is a prime number, else returns false. Integer#prime? is much more performant.
Parameters
value
-
an arbitrary integer to be checked.
generator
-
optional. A pseudo-prime generator.
238 239 240 241 242 243 244 245 246 247 |
# File 'lib/prime.rb', line 238 def prime?(value, generator = Prime::Generator23.new) raise ArgumentError, "Expected a prime generator, got #{generator}" unless generator.respond_to? :each raise ArgumentError, "Expected an integer, got #{value}" unless value.respond_to?(:integer?) && value.integer? return false if value < 2 generator.each do |num| q,r = value.divmod num return true if q < num return false if r == 0 end end |