epitools 0.5.85 → 0.5.86
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/VERSION +1 -1
- data/lib/epitools/core_ext/numbers.rb +45 -0
- 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: fa5bd6ece4d40890a3bc17803b39274f0a97e062
|
4
|
+
data.tar.gz: 36b46e5f2e7a810cb2c8d7aed8703a86f29dd1bd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b3640329ef613f895dddd1869ba1ba33e74ef63cbec910876cc49e98a963adc4dbdef5326ddaf9c8e5520c58f9dd60d735a159a480d8bac56031e7ffbacca538
|
7
|
+
data.tar.gz: 1ebf3b63523a27cb2a4f825fd9e7bfa3160557e9bae97f8d813a907c7c8f8a9315175905bc375f711fd823fd60234e3e30f0a09a274d476686b36778b3078148
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.86
|
@@ -303,6 +303,22 @@ class Integer
|
|
303
303
|
Prime.prime? self
|
304
304
|
end
|
305
305
|
|
306
|
+
#
|
307
|
+
# Return a specified number of primes (optionally starting at the argument)
|
308
|
+
#
|
309
|
+
def primes(starting_at=2)
|
310
|
+
result = []
|
311
|
+
current = starting_at
|
312
|
+
|
313
|
+
loop do
|
314
|
+
if current.prime?
|
315
|
+
result << current
|
316
|
+
return result if result.size >= self
|
317
|
+
end
|
318
|
+
current += 1
|
319
|
+
end
|
320
|
+
end
|
321
|
+
|
306
322
|
#
|
307
323
|
# Returns the all the prime factors of a number.
|
308
324
|
#
|
@@ -431,3 +447,32 @@ class Time
|
|
431
447
|
end
|
432
448
|
|
433
449
|
end
|
450
|
+
|
451
|
+
|
452
|
+
class Prime
|
453
|
+
|
454
|
+
#
|
455
|
+
# Return an array of prime numbers within the specified range
|
456
|
+
#
|
457
|
+
def [](range)
|
458
|
+
ubound = range.end
|
459
|
+
lbound = range.begin
|
460
|
+
ubound -= 1 if range.exclude_end?
|
461
|
+
generator = each(ubound)
|
462
|
+
n = nil
|
463
|
+
|
464
|
+
loop do
|
465
|
+
break if (n = generator.succ) >= lbound
|
466
|
+
end
|
467
|
+
|
468
|
+
[n, *generator.to_a]
|
469
|
+
end
|
470
|
+
|
471
|
+
end
|
472
|
+
|
473
|
+
#
|
474
|
+
# Return an infinite enumerable of primes
|
475
|
+
#
|
476
|
+
def primes
|
477
|
+
Prime.instance
|
478
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: epitools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.86
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- epitron
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|