numb 0.125.0 → 0.138.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|