primes-utils 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7497029778cb110fc50639cd15d0dbabad984349
4
- data.tar.gz: 2175a6b5900225783fddcafff2b8689a8409e7df
3
+ metadata.gz: b3c9d1ce71f37ddfef893df9081068e4bed16c1f
4
+ data.tar.gz: 8c43034d10f57ad8e4753e866c35c52b43da8d37
5
5
  SHA512:
6
- metadata.gz: 300970b9508005dc6a21ca4c1d516f5e681c0127abd28b650d8d63fedd912d9d21fff5ddafdfe8143e8048c83c7e8746b96b480cb4d4bfdf4ef740a250aef741
7
- data.tar.gz: 4518384b744815f59ce8303f5e5716eafd97899f04395df00d06c5397a764abd5f0d5b59fd43471a6f0531be2b77d1ec0f8c901c51071c60ccc36139c28adaf5
6
+ metadata.gz: f12686ee34059845f8c0525283b1d83a4076676606acce3acbd1b3c58baacd375648c8cb926aaa61b2cb69d9df109f939ec7977e7d158044bf0e028f9df4374f
7
+ data.tar.gz: 0e6d049b7a9787bce8ceb27cafc224d1a0e05dd8ae7438ed36ae6ecd1916351bd1dedc944e0abc8ac3a77e400edee4d902fe79d9ad71fde02a641199aea44e09
data/README.md CHANGED
@@ -102,7 +102,7 @@ Can change SP PG used on input. Acceptable primes range: [3 - 19].
102
102
  ```
103
103
  1000000.primenth => 15485863
104
104
  1500000.nthprime => 23879519
105
- 2000000.nthprime 13 => 32452843l
105
+ 2000000.nthprime 13 => 32452843
106
106
  -500000.nthprime => 7368787
107
107
  0.nthprime => 0
108
108
  ```
data/lib/primes/utils.rb CHANGED
@@ -105,9 +105,11 @@ module Primes
105
105
  seeds = [2, 3, 5, 7, 11, 13, 17, 19]
106
106
  primes = []
107
107
 
108
- n = self.abs # the desired nth prime
109
- return n != 0 ? seeds[n-1] : 0 if n < seeds.size
110
- numb = (n*(Math.log(n)+2)).to_i # approx close value > nth prime
108
+ n = self.abs # the desired nth prime
109
+ return n != 0 ? seeds[n-1] : 0 if n < seeds.size
110
+
111
+ # compute approximate value of (>) nth prime to count up to
112
+ numb = (n*(Math.log(n)+2)).to_i
111
113
 
112
114
  # find primes <= Pn, compute modPn then Prime Gen residues for Pn
113
115
  primes = seeds[0..seeds.index(p)]; mod = primes.reduce(:*)
@@ -141,14 +143,12 @@ module Primes
141
143
  end
142
144
  end
143
145
  # the prms array now has all the primes positions for primes r1..N
144
- # find the nth prime and output it
145
- count = primes.size
146
- modk,r=0,0
147
- prms.each do |prime|
148
- r +=1; if r > rescnt; r=1; modk +=mod end
149
- count +=1 if prime
150
- return modk+residues[r] if count == n
151
- end
146
+ # count up to nth prime, compute value from address, and output
147
+ prmcnt = primes.size # number of primes up to Pn
148
+ m=0
149
+ while prmcnt < n; prmcnt +=1 if prms[m]; m +=1 end
150
+ k,rr = m.divmod rescnt
151
+ return (mod*k + residues[rr])
152
152
  end
153
153
 
154
154
  alias nthprime primenth # to make life easier
@@ -1,5 +1,5 @@
1
1
  module Primes
2
2
  module Utils
3
- VERSION = "1.1.0"
3
+ VERSION = "1.1.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: primes-utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jabari Zakiya
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-04-05 00:00:00.000000000 Z
11
+ date: 2015-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler