Module: FasterPrime::Core
Defined Under Namespace
Classes: SuccEnumerator
Instance Method Summary collapse
- #each(ubound = nil, &block) ⇒ Object
- #int_from_prime_division(pd) ⇒ Object
- #prime?(n) ⇒ Boolean
- #prime_division(n) ⇒ Object
Instance Method Details
#each(ubound = nil, &block) ⇒ Object
16 17 18 19 20 21 22 |
# File 'lib/faster_prime/base.rb', line 16 def each(ubound = nil, &block) return SuccEnumerator.new(Float::INFINITY) do |y| Sieve.each(ubound) {|p| y << p } end unless block_given? Sieve.each(ubound, &block) end |
#int_from_prime_division(pd) ⇒ Object
33 34 35 |
# File 'lib/faster_prime/base.rb', line 33 def int_from_prime_division(pd) pd.inject(1) {|v, (p, e)| v * (p ** e) } end |
#prime?(n) ⇒ Boolean
24 25 26 27 |
# File 'lib/faster_prime/base.rb', line 24 def prime?(n) raise ArgumentError, "Expected an integer, got #{ n }" unless n.respond_to?(:integer?) && n.integer? PrimalityTest.prime?(n) end |
#prime_division(n) ⇒ Object
29 30 31 |
# File 'lib/faster_prime/base.rb', line 29 def prime_division(n) PrimeFactorization.prime_factorization(n).to_a end |