Class: Prime::Generator23

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

Overview

Generates all integers which are greater than 2 and are not divisible by either 2 or 3.

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

Instance Method Summary collapse

Methods inherited from PseudoPrimeGenerator

#each, #size, #upper_bound, #upper_bound=, #with_index, #with_object

Constructor Details

#initializeGenerator23

Returns a new instance of Generator23.



450
451
452
453
454
# File 'lib/prime.rb', line 450

def initialize
  @prime = 1
  @step = nil
  super
end

Instance Method Details

#rewindObject



470
471
472
# File 'lib/prime.rb', line 470

def rewind
  initialize
end

#succObject Also known as: next



456
457
458
459
460
461
462
463
464
465
466
467
468
# File 'lib/prime.rb', line 456

def succ
  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
  @prime
end