Sha256: 240c9b5fc953ca8513ae131181ba505b03e827a7691a388b833e8928de22bb69

Contents?: true

Size: 216 Bytes

Versions: 15

Compression:

Stored size: 216 Bytes

Contents

class Integer
  def fermat_pseudoprime?(a=10)
    return false unless composite?
    q = self
    raise ArgumentError unless a >= 2
    raise ArgumentError unless (q - 2) >= a
    (a**(q-1)).modulo(q) == 1
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
numb-0.152.0 lib/numb/fermat_pseudoprime.rb
numb-0.138.0 lib/numb/fermat_pseudoprime.rb
numb-0.125.0 lib/numb/fermat_pseudoprime.rb
numb-0.114.0 lib/numb/fermat_pseudoprime.rb
numb-0.111.0 lib/numb/fermat_pseudoprime.rb
numb-0.109.0 lib/numb/fermat_pseudoprime.rb
numb-0.99.0 lib/numb/fermat_pseudoprime.rb
numb-0.96.0 lib/numb/fermat_pseudoprime.rb
numb-0.89.0 lib/numb/fermat_pseudoprime.rb
numb-0.84.0 lib/numb/fermat_pseudoprime.rb
numb-0.77.0 lib/numb/fermat_pseudoprime.rb
numb-0.72.1 lib/numb/fermat_pseudoprime.rb
numb-0.72.0 lib/numb/fermat_pseudoprime.rb
numb-0.68.0 lib/numb/fermat_pseudoprime.rb
numb-0.63.0 lib/numb/fermat_pseudoprime.rb