Class: Prime::Generator23

Inherits:
PseudoPrimeGenerator show all
Defined in:
lib/prime.rb

Overview

Generates all integer which are greater than 2 and are not divided by 2 nor 3.

This is a pseudo-prime generator, suitable on checking primality of a integer by brute force method.

Instance Method Summary (collapse)

Methods inherited from PseudoPrimeGenerator

#each, #upper_bound, #upper_bound=, #with_object

Methods included from Enumerable

#to_set

Constructor Details

- (Generator23) initialize

A new instance of Generator23



323
324
325
326
# File 'lib/prime.rb', line 323

def initialize
  @prime = 1
  @step = nil
end

Instance Method Details

- (Object) rewind



344
345
346
# File 'lib/prime.rb', line 344

def rewind
  initialize
end

- (Object) succ Also known as: next



328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
# File 'lib/prime.rb', line 328

def succ
  loop do
	if (@step)
	  @prime += @step
	  @step = 6 - @step
	else
	  case @prime
	  when 1; @prime = 2
	  when 2; @prime = 3
	  when 3; @prime = 5; @step = 2
	  end
	end
	break @prime
  end
end