numb 0.125.0 → 0.138.0
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.
- data/VERSION +1 -1
- data/lib/numb/bernoulli.rb +14 -0
- data/lib/numb/brilliant.rb +7 -0
- data/lib/numb/centered_square.rb +5 -0
- data/lib/numb/choose.rb +8 -0
- data/lib/numb/e_divisors.rb +10 -0
- data/lib/numb/e_perfect.rb +7 -0
- data/lib/numb/entringer.rb +9 -0
- data/lib/numb/fermat.rb +6 -0
- data/lib/numb/franel.rb +6 -0
- data/lib/numb/genocchi.rb +8 -0
- data/lib/numb/gnomonic.rb +4 -0
- data/lib/numb/mersenne.rb +7 -0
- data/lib/numb/mersenne_prime.rb +1 -1
- data/lib/numb/n_step_fibonacci.rb +8 -0
- data/lib/numb/number_of_divisors.rb +2 -0
- data/lib/numb/powerful.rb +2 -0
- data/lib/numb/pronic.rb +2 -0
- data/lib/numb/sophie_germain_prime.rb +1 -1
- data/lib/numb/subfactorial.rb +7 -0
- data/lib/numb/sum_of_e_divisors.rb +10 -0
- data/spec/numb/bernoulli_spec.rb +23 -0
- data/spec/numb/brilliant_spec.rb +21 -0
- data/spec/numb/centered_square_spec.rb +20 -0
- data/spec/numb/choose_spec.rb +26 -0
- data/spec/numb/e_divisors_spec.rb +41 -0
- data/spec/numb/e_perfect_spec.rb +21 -0
- data/spec/numb/entringer_spec.rb +25 -0
- data/spec/numb/fermat_spec.rb +20 -0
- data/spec/numb/franel_spec.rb +15 -0
- data/spec/numb/genocchi_spec.rb +22 -0
- data/spec/numb/gnomonic_spec.rb +21 -0
- data/spec/numb/mersenne_spec.rb +21 -0
- data/spec/numb/n_step_fibonacci_spec.rb +48 -0
- data/spec/numb/subfactorial_spec.rb +14 -0
- data/spec/numb/sum_of_e_divisors_spec.rb +15 -0
- metadata +47 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.138.0
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
class Integer
|
3
|
+
# TODO: Consider http://cims.nyu.edu/~harvey/bernmm/
|
4
|
+
def bernoulli
|
5
|
+
return -0.5.to_r if self == 1
|
6
|
+
return 0.to_r if odd?
|
7
|
+
a = []
|
8
|
+
0.upto(self) do |m|
|
9
|
+
a[m] = Rational(1, m + 1)
|
10
|
+
m.downto(1){|j| a[j - 1] = j * (a[j - 1] - a[j])}
|
11
|
+
end
|
12
|
+
a.first
|
13
|
+
end
|
14
|
+
end
|
data/lib/numb/choose.rb
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
class Integer
|
2
|
+
def e_divisors
|
3
|
+
return [1] if self == 1
|
4
|
+
pfacts = primaries
|
5
|
+
comb = pfacts.map{|p,a| (1..a).select{|b| a.divides?(b)}.map{|b| p**b}}
|
6
|
+
comb.flatten.permutation(pfacts.size).select do |perm|
|
7
|
+
perm.each_with_index.all?{|x,i| comb[i].include? x}
|
8
|
+
end.map{|perm| perm.reduce(:*)}
|
9
|
+
end
|
10
|
+
end
|
data/lib/numb/fermat.rb
ADDED
data/lib/numb/franel.rb
ADDED
data/lib/numb/mersenne_prime.rb
CHANGED
data/lib/numb/powerful.rb
CHANGED
data/lib/numb/pronic.rb
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
describe Integer, "#bernoulli" do
|
3
|
+
# A000367
|
4
|
+
@numerators = [1, 1, -1, 1, -1, 5, -691, 7, -3617, 43867, -174611, 854513,
|
5
|
+
-236364091, 8553103, -23749461029, 8615841276005, -7709321041217,
|
6
|
+
2577687858367, -26315271553053477373, 2929993913841559,
|
7
|
+
-261082718496449122051]
|
8
|
+
# A002445
|
9
|
+
@denominators = [1, 6, 30, 42, 30, 66, 2730, 6, 510, 798, 330, 138, 2730, 6,
|
10
|
+
870, 14322, 510, 6, 1919190, 6, 13530, 1806, 690, 282, 46410,
|
11
|
+
66, 1590, 798, 870, 354, 56786730, 6, 510, 64722, 30, 4686,
|
12
|
+
140100870, 6, 30, 3318, 230010]
|
13
|
+
|
14
|
+
@seq = @numerators.zip(@denominators).map{|n,d| Rational(n,d)}
|
15
|
+
@seq = ([0.to_r] * @numerators.size).zip(@seq).flatten
|
16
|
+
@seq.shift
|
17
|
+
@seq[1] = -Rational(1, 2)
|
18
|
+
@seq.each_with_index do |r, n|
|
19
|
+
it "returns #{r} for #{n}" do
|
20
|
+
n.bernoulli.should == r
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
describe Integer, "#brilliant?" do
|
3
|
+
# A078972
|
4
|
+
@seq = [4,6,9,10,14,15,21,25,35,49,121,143,169,187,209,
|
5
|
+
221,247,253,289,299,319,323,341,361,377,391,403,
|
6
|
+
407,437,451,473,481,493,517,527,529,533,551,559,
|
7
|
+
583,589,611,629,649,667,671,689,697,703,713,731,
|
8
|
+
737,767,779,781]
|
9
|
+
|
10
|
+
@seq.each do |n|
|
11
|
+
it "returns true for brilliant number #{n}" do
|
12
|
+
n.should be_brilliant
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
@seq.to_seq.invert.sample(100).each do |n|
|
17
|
+
it "returns false for non-brilliant number #{n}" do
|
18
|
+
n.should_not be_brilliant
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
describe Integer, "#centered_square?" do
|
2
|
+
# A001844
|
3
|
+
@seq = [1,5,13,25,41,61,85,113,145,181,221,265,313,365,
|
4
|
+
421,481,545,613,685,761,841,925,1013,1105,1201,
|
5
|
+
1301,1405,1513,1625,1741,1861,1985,2113,2245,2381,
|
6
|
+
2521,2665,2813,2965,3121,3281,3445,3613,3785,3961,
|
7
|
+
4141,4325]
|
8
|
+
|
9
|
+
@seq.each do |n|
|
10
|
+
it "should return true for centered-square number #{n}" do
|
11
|
+
n.should be_centered_square
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
@seq.to_seq.invert.sample(100).each do |n|
|
16
|
+
it "should return false for non-centered-square number #{n}" do
|
17
|
+
n.should_not be_centered_square
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
describe Integer, "#choose" do
|
3
|
+
# A007318
|
4
|
+
@seq = [
|
5
|
+
[1],
|
6
|
+
[1, 1],
|
7
|
+
[1, 2, 1],
|
8
|
+
[1, 3, 3, 1],
|
9
|
+
[1, 4, 6, 4, 1],
|
10
|
+
[1, 5, 10, 10, 5, 1],
|
11
|
+
[1, 6, 15, 20, 15, 6, 1],
|
12
|
+
[1, 7, 21, 35, 35, 21, 7, 1],
|
13
|
+
[1, 8, 28, 56, 70, 56, 28, 8, 1],
|
14
|
+
[1, 9, 36, 84, 126, 126, 84, 36, 9, 1],
|
15
|
+
[1, 10, 45, 120, 210, 252, 210, 120, 45, 10, 1],
|
16
|
+
[1, 11, 55, 165, 330, 462, 462, 330, 165, 55, 11, 1]
|
17
|
+
]
|
18
|
+
|
19
|
+
@seq.each_with_index do |row, n|
|
20
|
+
row.each_with_index do |coeff, k|
|
21
|
+
it "returns #{coeff} for Binomial(#{n}, #{k})" do
|
22
|
+
n.choose(k).should == coeff
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
describe Integer, "#e_divisors" do
|
2
|
+
# A051377
|
3
|
+
@sums = [1,2,3,6,5,6,7,10,12,10,11,18,13,14,15,22,17,24,
|
4
|
+
19,30,21,22,23,30,30,26,30,42,29,30,31,34,33,34,
|
5
|
+
35,72,37,38,39,50,41,42,43,66,60,46,47,66,56,60,
|
6
|
+
51,78,53,60,55,70,57,58,59,90,61,62,84,78,65,66,
|
7
|
+
67,102,69,70,71]
|
8
|
+
|
9
|
+
# A049419
|
10
|
+
@counts = [1,1,1,2,1,1,1,2,2,1,1,2,1,1,1,3,1,2,1,2,1,1,1,2,
|
11
|
+
2,1,2,2,1,1,1,2,1,1,1,4,1,1,1,2,1,1,1,2,2,1,1,3,2,
|
12
|
+
2,1,2,1,2,1,2,1,1,1,2,1,1,2,4,1,1,1,2,1,1,1,4,1,1,
|
13
|
+
2,2,1,1,1,3,3,1,1,2,1,1,1,2,1,2,1,2,1,1,1,2,1,2,2,
|
14
|
+
4,1,1]
|
15
|
+
|
16
|
+
# A157488
|
17
|
+
@products = [1,2,3,8,5,6,7,16,27,10,11,72,13,14,15,128,17,
|
18
|
+
108,19,200,21,22,23,144,125,26,81,392,29,30,31,64,33,34,
|
19
|
+
35,46656,37,38,39,400,41,42,43,968,675,46,47,3456,343,500,
|
20
|
+
51,1352,53,324,55,784,57,58,59,1800,61,62,1323,4096]
|
21
|
+
|
22
|
+
@counts.to_enum.with_index(1) do |count, n|
|
23
|
+
e_divisors = n.e_divisors
|
24
|
+
|
25
|
+
it "returns #{count} e divisors for #{n}" do
|
26
|
+
e_divisors.size.should == count
|
27
|
+
end
|
28
|
+
|
29
|
+
if sum = @sums[n-1]
|
30
|
+
it "returns e divisors with a sum of #{sum} for #{n}" do
|
31
|
+
e_divisors.reduce(:+).should == sum
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
if product = @products[n-1]
|
36
|
+
it "returns e divisors with a product of #{product} for #{n}" do
|
37
|
+
e_divisors.reduce(:*).should == product
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
describe Integer, "#e_perfect?" do
|
3
|
+
# A054979
|
4
|
+
@seq = [36,180,252,396,468,612,684,828,1044,1116,1260,
|
5
|
+
1332,1476,1548,1692,1800,1908,1980,2124,2196,2340,
|
6
|
+
2412,2556,2628,2700,2772,2844,2988,3060,3204,3276,
|
7
|
+
3420,3492,3636,3708,3852,3924,4068,4140,4284,4572,
|
8
|
+
4716]
|
9
|
+
|
10
|
+
@seq.each do |n|
|
11
|
+
it "returns true for e-perfect number #{n}" do
|
12
|
+
n.should be_e_perfect
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
@seq.to_seq.invert.sample(100).each do |n|
|
17
|
+
it "returns false for non-e-perfect number #{n}" do
|
18
|
+
n.should_not be_e_perfect
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
describe Integer, "#entringer" do
|
3
|
+
# A008281
|
4
|
+
@seq = [
|
5
|
+
[1, ],
|
6
|
+
[0, 1, ],
|
7
|
+
[0, 1, 1, ],
|
8
|
+
[0, 1, 2, 2, ],
|
9
|
+
[0, 2, 4, 5, 5, ],
|
10
|
+
[0, 5, 10, 14, 16, 16, ],
|
11
|
+
[0, 16, 32, 46, 56, 61, 61, ],
|
12
|
+
[0, 61, 122, 178, 224, 256, 272, 272, ],
|
13
|
+
[0, 272, 544, 800, 1024, 1202, 1324, 1385, 1385, ],
|
14
|
+
[0, 1385, 2770, 4094, 5296, 6320, 7120, 7664, 7936, 7936],
|
15
|
+
]
|
16
|
+
|
17
|
+
@seq.each_with_index do |row, a|
|
18
|
+
row.each_with_index do |n, b|
|
19
|
+
it "returns #{n} for Entringer(#{a}, #{b})" do
|
20
|
+
a.entringer(b).should == n
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
describe Integer, "#fermat?" do
|
3
|
+
# A000215
|
4
|
+
@seq = [3,5,17,257,65537,4294967297,18446744073709551617,
|
5
|
+
340282366920938463463374607431768211457,
|
6
|
+
115792089237316195423570985008687907853269984665640564039457584007913129639937,
|
7
|
+
13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084097]
|
8
|
+
|
9
|
+
@seq.each do |n|
|
10
|
+
it "returns true for Fermat number #{n}" do
|
11
|
+
n.should be_fermat
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
@seq.to_seq.invert.sample(100).each do |n|
|
16
|
+
it "returns false for non-Fermat number #{n}" do
|
17
|
+
n.should_not be_fermat
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
describe Integer, "#franel" do
|
3
|
+
# A000172
|
4
|
+
@seq = [1,2,10,56,346,2252,15184,104960,739162,5280932,
|
5
|
+
38165260,278415920,2046924400,15148345760,
|
6
|
+
112738423360,843126957056,6332299624282,
|
7
|
+
47737325577620,361077477684436,2739270870994736,
|
8
|
+
20836827035351596]
|
9
|
+
|
10
|
+
@seq.each_with_index do |franel, n|
|
11
|
+
it "returns #{franel} for #{n}" do
|
12
|
+
n.franel.should == franel
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# coding utf-8
|
2
|
+
describe Integer, "#genocchi" do
|
3
|
+
#A001469
|
4
|
+
@seq = [-1,1,-3,17,-155,2073,-38227,929569,-28820619,
|
5
|
+
1109652905,-51943281731,2905151042481,
|
6
|
+
-191329672483963,14655626154768697,
|
7
|
+
-1291885088448017715,129848163681107301953,
|
8
|
+
-14761446733784164001387]
|
9
|
+
|
10
|
+
(2..(@seq.size * 2)).select(&:even?).each do |n|
|
11
|
+
|
12
|
+
m_genocchi = (m = n - 1) == 1 ? 1 : 0
|
13
|
+
it "returns #{m_genocchi} for #{m}" do
|
14
|
+
m.genocchi.should == m_genocchi
|
15
|
+
end
|
16
|
+
|
17
|
+
genocchi = @seq.shift
|
18
|
+
it "returns #{genocchi} for #{n}" do
|
19
|
+
n.genocchi.should == genocchi
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
describe Integer, "#gnomonic?" do
|
3
|
+
# A005408
|
4
|
+
@seq = [1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,
|
5
|
+
37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,
|
6
|
+
69,71,73,75,77,79,81,83,85,87,89,91,93,95,97,99,
|
7
|
+
101,103,105,107,109,111,113,115,117,119,121,123,
|
8
|
+
125,127,129,131]
|
9
|
+
|
10
|
+
@seq.each do |n|
|
11
|
+
it "returns true for gnomonic number #{n}" do
|
12
|
+
n.should be_gnomonic
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
@seq.to_seq.invert.each do |n|
|
17
|
+
it "returns false for non-gnomonic number #{n}" do
|
18
|
+
n.should_not be_gnomonic
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
describe Integer, "#mersenne?" do
|
3
|
+
# A000225
|
4
|
+
@seq = [0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,
|
5
|
+
16383,32767,65535,131071,262143,524287,1048575,
|
6
|
+
2097151,4194303,8388607,16777215,33554431,
|
7
|
+
67108863,134217727,268435455,536870911,1073741823,
|
8
|
+
2147483647,4294967295]
|
9
|
+
|
10
|
+
@seq.each do |n|
|
11
|
+
it "returns true for Mersenne number #{n}" do
|
12
|
+
n.should be_mersenne
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
@seq.to_seq.invert.sample(100).each do |n|
|
17
|
+
it "returns false for non-Mersenne number #{n}" do
|
18
|
+
n.should_not be_mersenne
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
describe Integer, "#n_step_fibonacci" do
|
2
|
+
@seq = {
|
3
|
+
# A000045
|
4
|
+
2 => [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,
|
5
|
+
1597,2584,4181,6765,10946,17711,28657,46368,75025,
|
6
|
+
121393,196418,317811,514229,832040,1346269,
|
7
|
+
2178309,3524578,5702887,9227465,14930352,24157817,
|
8
|
+
39088169],
|
9
|
+
# A000073
|
10
|
+
3 => [0,0,1,1,2,4,7,13,24,44,81,149,274,504,927,1705,
|
11
|
+
3136,5768,10609,19513,35890,66012,121415,223317,
|
12
|
+
410744,755476,1389537,2555757,4700770,8646064,
|
13
|
+
15902591,29249425,53798080,98950096,181997601,
|
14
|
+
334745777],
|
15
|
+
# A000078
|
16
|
+
4 => [0,0,0,1,1,2,4,8,15,29,56,108,208,401,773,1490,
|
17
|
+
2872,5536,10671,20569,39648,76424,147312,283953,
|
18
|
+
547337,1055026,2033628,3919944,7555935,14564533,
|
19
|
+
28074040,54114452,104308960,201061985,387559437,
|
20
|
+
747044834],
|
21
|
+
# A001591
|
22
|
+
5 => [0,0,0,0,1,1,2,4,8,16,31,61,120,236,464,912,1793,
|
23
|
+
3525,6930,13624,26784,52656,103519,203513,400096,
|
24
|
+
786568,1546352,3040048,5976577,11749641,23099186,
|
25
|
+
45411804,89277256,175514464,345052351,678355061,
|
26
|
+
1333610936],
|
27
|
+
# A001592
|
28
|
+
6 => [0,0,0,0,0,1,1,2,4,8,16,32,63,125,248,492,976,
|
29
|
+
1936,3840,7617,15109,29970,59448,117920,233904,
|
30
|
+
463968,920319,1825529,3621088,7182728,14247536,
|
31
|
+
28261168,56058368,111196417,220567305,437513522,
|
32
|
+
867844316],
|
33
|
+
# A122189
|
34
|
+
7 => [0,0,0,0,0,0,1,1,2,4,8,16,32,64,127,253,504,1004,
|
35
|
+
2000,3984,7936,15808,31489,62725,124946,248888,
|
36
|
+
495776,987568,1967200,3918592,7805695,15548665,
|
37
|
+
30972384,61695880,122895984,244804400,487641600,
|
38
|
+
971364608],
|
39
|
+
}
|
40
|
+
|
41
|
+
@seq.each_pair do |n, ks|
|
42
|
+
ks.first(10 + n).each_with_index do |x, k|
|
43
|
+
it "returns #{x} for the #{k}#{k.ordinal} #{n}-step Fibonacci number" do
|
44
|
+
k.n_step_fibonacci(n).should == x
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
describe Integer, "#subfactorial" do
|
2
|
+
# A000166
|
3
|
+
@seq = [1,0,1,2,9,44,265,1854,14833,133496,1334961,
|
4
|
+
14684570,176214841,2290792932,32071101049,
|
5
|
+
481066515734,7697064251745,130850092279664,
|
6
|
+
2355301661033953,44750731559645106,
|
7
|
+
895014631192902121,18795307255050944540]
|
8
|
+
|
9
|
+
@seq.each_with_index do |sf, n|
|
10
|
+
it "returns #{sf} for #{n}" do
|
11
|
+
n.subfactorial.should == sf
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
describe Integer, "#σe" do
|
3
|
+
# A051377
|
4
|
+
@sums = [1,2,3,6,5,6,7,10,12,10,11,18,13,14,15,22,17,24,
|
5
|
+
19,30,21,22,23,30,30,26,30,42,29,30,31,34,33,34,
|
6
|
+
35,72,37,38,39,50,41,42,43,66,60,46,47,66,56,60,
|
7
|
+
51,78,53,60,55,70,57,58,59,90,61,62,84,78,65,66,
|
8
|
+
67,102,69,70,71]
|
9
|
+
|
10
|
+
@sums.to_enum.with_index(1) do |sum, n|
|
11
|
+
it "returns #{sum} for #{n}" do
|
12
|
+
n.σe.should == sum
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: numb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.138.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Run Paint Run Run
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-03-
|
12
|
+
date: 2010-03-18 00:00:00 +00:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -56,11 +56,13 @@ files:
|
|
56
56
|
- lib/numb/base.rb
|
57
57
|
- lib/numb/beastly.rb
|
58
58
|
- lib/numb/bell.rb
|
59
|
+
- lib/numb/bernoulli.rb
|
59
60
|
- lib/numb/betrothed.rb
|
60
61
|
- lib/numb/binomial.rb
|
61
62
|
- lib/numb/biquadratic.rb
|
62
63
|
- lib/numb/blum.rb
|
63
64
|
- lib/numb/breeder.rb
|
65
|
+
- lib/numb/brilliant.rb
|
64
66
|
- lib/numb/brown.rb
|
65
67
|
- lib/numb/carmichael.rb
|
66
68
|
- lib/numb/carol.rb
|
@@ -69,7 +71,9 @@ files:
|
|
69
71
|
- lib/numb/centered_hexagonal.rb
|
70
72
|
- lib/numb/centered_n_gonal.rb
|
71
73
|
- lib/numb/centered_pentagonal.rb
|
74
|
+
- lib/numb/centered_square.rb
|
72
75
|
- lib/numb/centered_triangular.rb
|
76
|
+
- lib/numb/choose.rb
|
73
77
|
- lib/numb/composite.rb
|
74
78
|
- lib/numb/congruum.rb
|
75
79
|
- lib/numb/consecutive.rb
|
@@ -88,21 +92,28 @@ files:
|
|
88
92
|
- lib/numb/dodecagonal.rb
|
89
93
|
- lib/numb/doubly_even.rb
|
90
94
|
- lib/numb/dudeney.rb
|
95
|
+
- lib/numb/e_divisors.rb
|
96
|
+
- lib/numb/e_perfect.rb
|
91
97
|
- lib/numb/eban.rb
|
92
98
|
- lib/numb/economical.rb
|
93
99
|
- lib/numb/emrip.rb
|
100
|
+
- lib/numb/entringer.rb
|
94
101
|
- lib/numb/equidigital.rb
|
95
102
|
- lib/numb/euclid.rb
|
96
103
|
- lib/numb/evil.rb
|
97
104
|
- lib/numb/extravagant.rb
|
98
105
|
- lib/numb/factorial.rb
|
99
106
|
- lib/numb/factorion.rb
|
107
|
+
- lib/numb/fermat.rb
|
100
108
|
- lib/numb/fermat_pseudoprime.rb
|
101
109
|
- lib/numb/fibonacci.rb
|
110
|
+
- lib/numb/franel.rb
|
102
111
|
- lib/numb/friendly.rb
|
103
112
|
- lib/numb/frugal.rb
|
104
113
|
- lib/numb/full_reptend_prime.rb
|
114
|
+
- lib/numb/genocchi.rb
|
105
115
|
- lib/numb/giuga.rb
|
116
|
+
- lib/numb/gnomonic.rb
|
106
117
|
- lib/numb/goldbach.rb
|
107
118
|
- lib/numb/hamming.rb
|
108
119
|
- lib/numb/happy.rb
|
@@ -129,6 +140,7 @@ files:
|
|
129
140
|
- lib/numb/lucas.rb
|
130
141
|
- lib/numb/lucas_carmichael.rb
|
131
142
|
- lib/numb/lychrel.rb
|
143
|
+
- lib/numb/mersenne.rb
|
132
144
|
- lib/numb/mersenne_prime.rb
|
133
145
|
- lib/numb/minimal.rb
|
134
146
|
- lib/numb/mms_pair.rb
|
@@ -136,6 +148,7 @@ files:
|
|
136
148
|
- lib/numb/modulo_order.rb
|
137
149
|
- lib/numb/myriagonal.rb
|
138
150
|
- lib/numb/n_gonal.rb
|
151
|
+
- lib/numb/n_step_fibonacci.rb
|
139
152
|
- lib/numb/narcissistic.rb
|
140
153
|
- lib/numb/next_prev_prime.rb
|
141
154
|
- lib/numb/nivenmorphic.rb
|
@@ -192,7 +205,9 @@ files:
|
|
192
205
|
- lib/numb/squared_triangular.rb
|
193
206
|
- lib/numb/strictly_non_palindromic.rb
|
194
207
|
- "lib/numb/st\xC3\xB8rmer.rb"
|
208
|
+
- lib/numb/subfactorial.rb
|
195
209
|
- lib/numb/sublime.rb
|
210
|
+
- lib/numb/sum_of_e_divisors.rb
|
196
211
|
- lib/numb/sum_of_squares.rb
|
197
212
|
- lib/numb/sum_of_unitary_divisors.rb
|
198
213
|
- lib/numb/super_poulet.rb
|
@@ -234,11 +249,13 @@ files:
|
|
234
249
|
- spec/numb/base_spec.rb
|
235
250
|
- spec/numb/beastly_spec.rb
|
236
251
|
- spec/numb/bell_spec.rb
|
252
|
+
- spec/numb/bernoulli_spec.rb
|
237
253
|
- spec/numb/betrothed_spec.rb
|
238
254
|
- spec/numb/binomial_spec.rb
|
239
255
|
- spec/numb/biquadratic_spec.rb
|
240
256
|
- spec/numb/blum_spec.rb
|
241
257
|
- spec/numb/breeder_spec.rb
|
258
|
+
- spec/numb/brilliant_spec.rb
|
242
259
|
- spec/numb/brown_spec.rb
|
243
260
|
- spec/numb/carmichael_spec.rb
|
244
261
|
- spec/numb/carol_spec.rb
|
@@ -247,7 +264,9 @@ files:
|
|
247
264
|
- spec/numb/centered_hexagonal_spec.rb
|
248
265
|
- spec/numb/centered_n_gonal_spec.rb
|
249
266
|
- spec/numb/centered_pentagonal_spec.rb
|
267
|
+
- spec/numb/centered_square_spec.rb
|
250
268
|
- spec/numb/centered_triangular_spec.rb
|
269
|
+
- spec/numb/choose_spec.rb
|
251
270
|
- spec/numb/composite_spec.rb
|
252
271
|
- spec/numb/congruum_spec.rb
|
253
272
|
- spec/numb/coprime_spec.rb
|
@@ -266,9 +285,12 @@ files:
|
|
266
285
|
- spec/numb/dodecagonal_spec.rb
|
267
286
|
- spec/numb/doubly_even_spec.rb
|
268
287
|
- spec/numb/dudeney_spec.rb
|
288
|
+
- spec/numb/e_divisors_spec.rb
|
289
|
+
- spec/numb/e_perfect_spec.rb
|
269
290
|
- spec/numb/eban_spec.rb
|
270
291
|
- spec/numb/economical_spec.rb
|
271
292
|
- spec/numb/emrip_spec.rb
|
293
|
+
- spec/numb/entringer_spec.rb
|
272
294
|
- spec/numb/equidigital_spec.rb
|
273
295
|
- spec/numb/euclid_spec.rb
|
274
296
|
- spec/numb/evil_spec.rb
|
@@ -276,11 +298,15 @@ files:
|
|
276
298
|
- spec/numb/factorial_spec.rb
|
277
299
|
- spec/numb/factorion_spec.rb
|
278
300
|
- spec/numb/fermat_pseudoprime_spec.rb
|
301
|
+
- spec/numb/fermat_spec.rb
|
279
302
|
- spec/numb/fibonacci_spec.rb
|
303
|
+
- spec/numb/franel_spec.rb
|
280
304
|
- spec/numb/friendly_spec.rb
|
281
305
|
- spec/numb/frugal_spec.rb
|
282
306
|
- spec/numb/full_reptend_prime_spec.rb
|
307
|
+
- spec/numb/genocchi_spec.rb
|
283
308
|
- spec/numb/giuga_spec.rb
|
309
|
+
- spec/numb/gnomonic_spec.rb
|
284
310
|
- spec/numb/goldbach_spec.rb
|
285
311
|
- spec/numb/hamming_spec.rb
|
286
312
|
- spec/numb/happy_spec.rb
|
@@ -309,10 +335,12 @@ files:
|
|
309
335
|
- spec/numb/lychrel_spec.rb
|
310
336
|
- spec/numb/maris_mcgwire_sosa_pair_spec.rb
|
311
337
|
- spec/numb/mersenne_prime_spec.rb
|
338
|
+
- spec/numb/mersenne_spec.rb
|
312
339
|
- spec/numb/minimal_spec.rb
|
313
340
|
- spec/numb/mobius_spec.rb
|
314
341
|
- spec/numb/modulo_order_spec.rb
|
315
342
|
- spec/numb/myriagonal_spec.rb
|
343
|
+
- spec/numb/n_step_fibonacci_spec.rb
|
316
344
|
- spec/numb/narcissistic_spec.rb
|
317
345
|
- spec/numb/nivenmorphic_spec.rb
|
318
346
|
- spec/numb/noncototient_spec.rb
|
@@ -369,7 +397,9 @@ files:
|
|
369
397
|
- spec/numb/squared_triangular_spec.rb
|
370
398
|
- spec/numb/strictly_non_palindromic_spec.rb
|
371
399
|
- "spec/numb/st\xC3\xB8rmer_spec.rb"
|
400
|
+
- spec/numb/subfactorial_spec.rb
|
372
401
|
- spec/numb/sublime_spec.rb
|
402
|
+
- spec/numb/sum_of_e_divisors_spec.rb
|
373
403
|
- spec/numb/sum_of_squares_spec.rb
|
374
404
|
- spec/numb/sum_of_unitary_divisors_spec.rb
|
375
405
|
- spec/numb/super_poulet_spec.rb
|
@@ -431,10 +461,15 @@ test_files:
|
|
431
461
|
- spec/numb/base_spec.rb
|
432
462
|
- spec/numb/proth_spec.rb
|
433
463
|
- spec/numb/prime_signature_spec.rb
|
464
|
+
- spec/numb/mersenne_spec.rb
|
434
465
|
- spec/numb/unitary_divisor_spec.rb
|
466
|
+
- spec/numb/centered_square_spec.rb
|
435
467
|
- spec/numb/primitive_pseudoperfect_spec.rb
|
436
468
|
- spec/numb/polydivisible_spec.rb
|
469
|
+
- spec/numb/choose_spec.rb
|
470
|
+
- spec/numb/n_step_fibonacci_spec.rb
|
437
471
|
- spec/numb/strictly_non_palindromic_spec.rb
|
472
|
+
- spec/numb/gnomonic_spec.rb
|
438
473
|
- spec/numb/cyclic_spec.rb
|
439
474
|
- spec/numb/iban_spec.rb
|
440
475
|
- spec/numb/equidigital_spec.rb
|
@@ -472,6 +507,7 @@ test_files:
|
|
472
507
|
- spec/numb/zerofree_spec.rb
|
473
508
|
- spec/numb/eban_spec.rb
|
474
509
|
- spec/numb/automorphic_spec.rb
|
510
|
+
- spec/numb/fermat_spec.rb
|
475
511
|
- spec/numb/minimal_spec.rb
|
476
512
|
- spec/numb/jacobsthal_lucas_spec.rb
|
477
513
|
- spec/numb/aban_spec.rb
|
@@ -487,6 +523,7 @@ test_files:
|
|
487
523
|
- spec/numb/centered_hexagonal_spec.rb
|
488
524
|
- spec/numb/centered_n_gonal_spec.rb
|
489
525
|
- spec/numb/highly_abundant_spec.rb
|
526
|
+
- spec/numb/e_perfect_spec.rb
|
490
527
|
- spec/numb/augmented_amicable_spec.rb
|
491
528
|
- spec/numb/rough_spec.rb
|
492
529
|
- spec/numb/nonhypotenuse_spec.rb
|
@@ -500,10 +537,12 @@ test_files:
|
|
500
537
|
- spec/numb/bell_spec.rb
|
501
538
|
- spec/numb/sublime_spec.rb
|
502
539
|
- spec/numb/refactorable_spec.rb
|
540
|
+
- spec/numb/subfactorial_spec.rb
|
503
541
|
- spec/numb/betrothed_spec.rb
|
504
542
|
- spec/numb/smith_spec.rb
|
505
543
|
- spec/numb/unusual_spec.rb
|
506
544
|
- spec/numb/octagonal_spec.rb
|
545
|
+
- spec/numb/entringer_spec.rb
|
507
546
|
- spec/numb/unitary_sociable_spec.rb
|
508
547
|
- spec/numb/full_reptend_prime_spec.rb
|
509
548
|
- spec/numb/vampire_spec.rb
|
@@ -539,10 +578,12 @@ test_files:
|
|
539
578
|
- spec/numb/centered_pentagonal_spec.rb
|
540
579
|
- spec/numb/almost_perfect_spec.rb
|
541
580
|
- spec/numb/amicable_spec.rb
|
581
|
+
- spec/numb/brilliant_spec.rb
|
542
582
|
- spec/numb/amenable_spec.rb
|
543
583
|
- spec/numb/happy_spec.rb
|
544
584
|
- spec/numb/twin_prime_spec.rb
|
545
585
|
- spec/numb/hexagonal_spec.rb
|
586
|
+
- spec/numb/genocchi_spec.rb
|
546
587
|
- spec/numb/wieferich_prime_spec.rb
|
547
588
|
- spec/numb/fibonacci_spec.rb
|
548
589
|
- spec/numb/triangular_spec.rb
|
@@ -576,14 +617,18 @@ test_files:
|
|
576
617
|
- spec/numb/brown_spec.rb
|
577
618
|
- spec/numb/perrin_spec.rb
|
578
619
|
- spec/numb/beastly_spec.rb
|
620
|
+
- spec/numb/franel_spec.rb
|
579
621
|
- spec/numb/super_poulet_spec.rb
|
622
|
+
- spec/numb/sum_of_e_divisors_spec.rb
|
580
623
|
- spec/numb/factorion_spec.rb
|
581
624
|
- spec/numb/undulating_spec.rb
|
582
625
|
- spec/numb/extravagant_spec.rb
|
583
626
|
- spec/numb/lychrel_spec.rb
|
584
627
|
- spec/numb/self_descriptive_spec.rb
|
585
628
|
- spec/numb/decagonal_spec.rb
|
629
|
+
- spec/numb/e_divisors_spec.rb
|
586
630
|
- spec/numb/apocalyptic_spec.rb
|
631
|
+
- spec/numb/bernoulli_spec.rb
|
587
632
|
- spec/numb/kaprekar_spec.rb
|
588
633
|
- spec/numb/isqrt_spec.rb
|
589
634
|
- spec/numb/hilbert_spec.rb
|