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 +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
|