primes-utils 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/primes/utils.rb +11 -11
- data/lib/primes/utils/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b3c9d1ce71f37ddfef893df9081068e4bed16c1f
|
4
|
+
data.tar.gz: 8c43034d10f57ad8e4753e866c35c52b43da8d37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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 =>
|
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
|
109
|
-
return n != 0 ? seeds[n-1] : 0
|
110
|
-
|
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
|
-
#
|
145
|
-
|
146
|
-
|
147
|
-
prms
|
148
|
-
|
149
|
-
|
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
|
data/lib/primes/utils/version.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2015-04-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|