numb 0.181.0 → 0.184.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -4,3 +4,4 @@ coverage
4
4
  doc
5
5
  pkg
6
6
  .yardoc
7
+ *~
data/Rakefile CHANGED
@@ -22,7 +22,7 @@ rescue LoadError
22
22
  end
23
23
 
24
24
  require 'rspec/core/rake_task'
25
- Rspec::Core::RakeTask.new do |spec|
25
+ RSpec::Core::RakeTask.new do |spec|
26
26
  spec.ruby_opts = '-r./spec/spec_helper'
27
27
  end
28
28
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.181.0
1
+ 0.184.0
data/lib/numb/divisors.rb CHANGED
@@ -65,6 +65,22 @@ class Integer
65
65
  alias :⊥ :coprime?
66
66
  alias :stranger? :coprime?
67
67
 
68
+ # An enumeration of numbers coprime to `x` from `self` onward. If a
69
+ # block is given, it is yielded to with the next number in the
70
+ # sequence; otherwise, an `Enumerator` is returned.
71
+ #
72
+ # 4.coprime(3).first(5) #=> [4, 5, 7, 8, 10]
73
+ #
74
+ # @param [Integer] x each number in the enumeration is coprime with `x`
75
+ # @yield [Integer] n next number that is >= `self` and coprime with `x`
76
+ # @return [Enumerator] returned if the block is omitted
77
+ def coprime(x)
78
+ return enum_for(__method__, x) unless block_given?
79
+ (self..Float::INFINITY).each do |n|
80
+ yield n if n.coprime?(x)
81
+ end
82
+ end
83
+
68
84
  # A deficient number is a number n for which σ(n) < 2n. That is, the sum of
69
85
  # its divisors are less than the number. (To calculate the sum of divisors
70
86
  # for an arbitrary integer see Integer#σ).
@@ -347,10 +363,13 @@ class Integer
347
363
  limit = Prime.first(pf.size).zip(pf.reverse).map{|b,e| b**(e-1)}.reduce(:*)
348
364
  neighbour = ->(e) { (self/e).divisors.reject{|d| d > e} }
349
365
  x, div, exponents = self, divisors, {}
350
-
351
366
  Prime.each do |b|
352
- max_exponent = Math.log(limit, b).floor
353
- d = div.reject{|d| d > max_exponent}.sort.reverse - [1]
367
+ d = begin
368
+ max_exponent = Math.log(limit, b).floor
369
+ div.reject{|d| d > max_exponent}
370
+ rescue FloatDomainError
371
+ div
372
+ end.sort.reverse - [1]
354
373
  unless b == 2
355
374
  prev_neighbours = exponents[exponents.keys.last].values.flatten
356
375
  d.reject!{|e, n| not prev_neighbours.include?(e)}
@@ -358,7 +377,6 @@ class Integer
358
377
  exponents[b] = Hash[d.map{|e| [e, neighbour.(e)]}]
359
378
  break if (x /= b) < 1
360
379
  end
361
-
362
380
  complete_chain = ->(b, e, goal=self, chain=nil) do
363
381
  chain ||= {chain: [[b, e]]}
364
382
  return chain unless exponents.key?(b) and exponents[b].key?(e)
@@ -422,4 +440,47 @@ class Integer
422
440
  k**2 * (35 * k**2 - 52 * k * n + 18 * n**2) * k.σ * (n-k).σ
423
441
  end.reduce(:+)
424
442
  end
443
+
444
+ def ordinary?
445
+ return true if self == 1
446
+ pf = prime_factors.sort.reverse
447
+ Prime.first(pf.size).
448
+ zip(pf).
449
+ map{|b,e| b**(e-1)}.
450
+ reduce(:*) == first_with_n_divisors
451
+ end
452
+
453
+ def exceptional?
454
+ not ordinary?
455
+ end
456
+
457
+ # Computes the extended greatest common divisor of `self` and `b`
458
+ #
459
+ # The extended Euclidean algorithm is an extension to the Euclidean
460
+ # algorithm for finding the GCD of integers `a` and `b`: it also
461
+ # finds the integers `x` and `y` in Bézout's identity:
462
+ #
463
+ # ax + by = gcd(a, b)
464
+ #
465
+ # This method takes `self` as `a`, and `b` as an argument, and
466
+ # returns their GCD, `x`, and `y`
467
+ #
468
+ # For example, `21.xgcd(48)` is `[3, 7, -3]` because `21.gcd(48)` is
469
+ # `3`, and `21 * 7 + 48 * -3` is `3`.
470
+ #
471
+ # 3.xgcd(-65) #=> [1, 22, 1]
472
+ # 56.xgcd(72) #=> [8, 4, -3]
473
+ #
474
+ # @param [Integer] b the number `self` is divided by
475
+ # @returns [Array<Integer>] GCD, `x`, and `y`
476
+ def xgcd b
477
+ a = self
478
+ x, y, u, v = 0, 1, 1, 0
479
+ while a != 0
480
+ q, r = b/a, b%a
481
+ m, n = x-u*q, y-v*q
482
+ b, a, x, y, u, v = a, r, u, v, m, n
483
+ end
484
+ self < 0 ? [b, x, y].map(&:-@) : [b, x, y]
485
+ end
425
486
  end
data/lib/numb/dudeney.rb CHANGED
@@ -10,8 +10,6 @@ class Integer
10
10
  # 98.dudeney? #=> false
11
11
  #
12
12
  def dudeney?
13
- # The ugly hack below is seemingly needed for 1.8 compatibility. I ave
14
- # yet to understand why.
15
- Math.cbrt(self).to_s.sub(/\.0$/,'') == self.digits.reduce(:+).to_s
13
+ digits.reduce(:+) ** 3 == self
16
14
  end
17
15
  end
data/lib/numb/inrt.rb ADDED
@@ -0,0 +1,12 @@
1
+ class Integer
2
+ # Returns the integer `n`'th root of the absolute value of `self`.
3
+ #
4
+ # (0..12).map{|n| (4**n).inrt(3)}
5
+ # #=> [1, 1, 2, 4, 6, 10, 16, 25, 40, 64, 101, 161, 256]
6
+ #
7
+ # @param [Integer] n root to take of `self`
8
+ # @return [Integer] The `n`th root of `self`
9
+ def inrt n
10
+ (abs ** Rational(1, n)).round(5).floor
11
+ end
12
+ end
@@ -0,0 +1,6 @@
1
+ class Integer
2
+ def inv_mod m
3
+ g, x, y = xgcd(m)
4
+ x % m if g == 1
5
+ end
6
+ end
data/lib/numb/ord.rb ADDED
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ class Integer
3
+ # Returns the multiplicative order of `self` % `m`, or `nil` if
4
+ # `self` is not coprime to `m`
5
+ #
6
+ # Given an integer `self` and a positive integer `m` with gcd(`a`,
7
+ # `m`) = 1, the multiplicative order of `self` modulo `m` is the
8
+ # smallest positive integer `k` with: `self`^`k` ≡ 1 (modulo `m`).
9
+ #
10
+ # @param [Integer] m the modulus
11
+ # @return [Integer, nil] the power, `k`, or `nil` if `self` and `m` are not coprime
12
+ def ord(m)
13
+ return unless coprime?(m)
14
+ m.prime_division.inject(1) do |result, f|
15
+ (p, k), r = f, 1
16
+ pk = p ** k
17
+ # We could calculate the totient here as `(p - 1) * p ** (k -
18
+ # 1)`, but it feels cleaner to separate the logic
19
+ (t = pk.φ).prime_division.each do |q, e|
20
+ x = power_mod(t / q ** e, pk)
21
+ while x != 1
22
+ r *= q
23
+ x = x.power_mod(q, pk)
24
+ end
25
+ end
26
+ result.lcm(r)
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,15 @@
1
+ class Integer
2
+ # `self`^`b` mod `m`
3
+ #
4
+ # @param [Integer] b power to which `self` should be raised
5
+ # @param [Integer] m modulus
6
+ # @return [Integer] `self`^`b` % `m`
7
+ def power_mod(b, m)
8
+ result = 1
9
+ b.to_s(2).chars.each do |bit|
10
+ result = (result * result) % m
11
+ result = (result * self) % m if bit==?1
12
+ end
13
+ result
14
+ end
15
+ end
@@ -8,7 +8,7 @@ describe Integer, "#dudeney?" do
8
8
  end
9
9
  end
10
10
 
11
- @seq.invert.sample(10).each do |n|
11
+ @seq.invert.sample(100).each do |n|
12
12
  it "returns false for non-Dudeney number #{n}" do
13
13
  n.should_not be_dudeney
14
14
  end
@@ -0,0 +1,36 @@
1
+ # coding: utf-8
2
+
3
+ # A072066
4
+ A072066 = [8,16,24,32,48,64,72,80,96,108,112,128,144,160,
5
+ 162,176,192,208,216,224,243,256,272,288,304,320,
6
+ 324,352,368,384,416,432,448,464,480,486,496,512,
7
+ 544,576,592,608,640,648,656,672,688,704,729,736,
8
+ 752,768,832,848]
9
+
10
+ describe Integer, "#exceptional?" do
11
+ A072066.sample(10).each do |n|
12
+ it "returns true for exceptional number #{n}" do
13
+ n.should be_exceptional
14
+ end
15
+ end
16
+
17
+ ([*(1..7)] + A072066.to_seq.invert.to_a).sample(10).each do |n|
18
+ it "returns false for ordinary number #{n}" do
19
+ n.should_not be_exceptional
20
+ end
21
+ end
22
+ end
23
+
24
+ describe Integer, "#ordinary?" do
25
+ ([*(1..7)] + A072066.to_seq.invert.to_a).sample(10).each do |n|
26
+ it "returns true for ordinary number #{n}" do
27
+ n.should be_ordinary
28
+ end
29
+ end
30
+
31
+ A072066.sample(10).each do |n|
32
+ it "returns false for exceptional number #{n}" do
33
+ n.should_not be_ordinary
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,42 @@
1
+ # coding: utf-8
2
+ describe Integer, "#inrt" do
3
+ @seq = {
4
+ # A017922
5
+ 2 => [1,2,6,14,36,88,216,529,1296,3174,7776,19047,
6
+ 46656,114283,279936,685700,1679616,4114202,
7
+ 10077696,24685212,60466176,148111277,362797056,
8
+ 888667667,2176782336,5332006004,13060694016].map.with_index{|n,i| [6**i, n]},
9
+
10
+ # A017985
11
+ 3 => [1,1,2,4,6,10,16,25,40,64,101,161,256,406,645,
12
+ 1024,1625,2580,4096,6501,10321,16384,26007,41285,
13
+ 65536,104031,165140,262144,416127,660561,1048576,
14
+ 1664510,2642245,4194304,6658042].map.with_index{|n,i| [4**i, n]},
15
+
16
+ # A018051
17
+ 4 => [1,1,1,2,3,3,5,6,9,11,15,20,27,35,46,61,81,106,
18
+ 140,184,243,319,420,553,729,959,1262,1661,2187,
19
+ 2878,3787,4985,6561,8634,11363,14955,19683,25904,
20
+ 34091,44867,59049,77712].map.with_index{|n,i| [3**i, n]},
21
+
22
+ # A018132
23
+ 5 => [1,1,2,3,4,7,10,15,22,33,49,72,106,157,232,343,
24
+ 506,747,1102,1626,2401,3543,5229,7717,11388,16807,
25
+ 24803,36604,54019,79720,117649,173623,256228,
26
+ 378135,558041,823543].map.with_index{|n,i| [7**i, n]},
27
+
28
+ # A017979
29
+ 6 => [1,1,1,2,2,3,4,5,6,8,10,12,16,20,25,32,40,50,64,
30
+ 80,101,128,161,203,256,322,406,512,645,812,1024,
31
+ 1290,1625,2048,2580,3250,4096,5160,6501,8192,
32
+ 10321,13003,16384,20642].map.with_index{|n,i| [4**i, n]},
33
+ }
34
+
35
+ @seq.each do |n, seq|
36
+ seq.each do |x, rt|
37
+ it "returns #{rt} for #{x}.inrt(#{n})" do
38
+ x.inrt(n).should == rt
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,27 @@
1
+ # coding: utf-8
2
+ describe Integer, "#inv_mod" do
3
+ # A102057
4
+ # -----b------> # |
5
+ @seq = [[ 1], # |
6
+ [ 1, 2], # m
7
+ [ 1,nil, 3], # |
8
+ [ 1, 3, 2, 4], # |
9
+ [ 1,nil,nil,nil, 5], # V
10
+ [ 1, 4, 5, 2, 3, 6],
11
+ [ 1,nil, 3,nil, 5,nil, 7],
12
+ [ 1, 5,nil, 7, 2,nil, 4, 8],
13
+ [ 1,nil, 7,nil,nil,nil, 3,nil, 9],
14
+ [ 1, 6, 4, 3, 9, 2, 8, 7, 5, 10],
15
+ [ 1,nil,nil,nil, 5,nil, 7,nil,nil,nil, 11],
16
+ [ 1, 7, 9, 10, 8, 11, 2, 5, 3, 4, 6, 12],
17
+ [ 1,nil, 5,nil, 3,nil,nil,nil, 11,nil, 9,nil, 13],
18
+ [ 1, 8,nil, 4,nil,nil, 13]]
19
+
20
+ @seq.each.with_index(2) do |ms, m|
21
+ ms.each.with_index(1) do |inv, b|
22
+ it "returns #{inv} for #{b}.inv_mod(#{m})" do
23
+ b.inv_mod(m).should == inv
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,72 @@
1
+ # coding: utf-8
2
+ describe Integer, "#ord" do
3
+ @seq = {
4
+ # A002326
5
+ 2 => [1,2,4,3,6,10,12,4,8,18,6,11,20,18,28,5,10,12,36,
6
+ 12,20,14,12,23,21,8,52,20,18,58,60,6,12,66,22,35,
7
+ 9,20,30,39,54,82,8,28,11,12,10,36,48,30,100,51,12,
8
+ 106,36,36,28,44,12,24,110,20,100,7,14,130,18,36,
9
+ 68,138,46,60,28].map.with_index{|k, i| [2*i + 1, k]},
10
+ # A050975
11
+ 3 => 2.coprime(3).first(74).zip([1,2,4,6,2,4,5,3,6,4,16,18,4,5,
12
+ 11,20,3,6,28,30,8,16,12,18,18,4,8,42,10,11,23,42,20,6,52,20,
13
+ 6,28,29, 10,30,16,12,22,16,12,35,12,18,18,30,78,4,8,41,16,
14
+ 42,10,88,6,22,23,36,48,42,20,100,34,6,52,53,27,20, 12]),
15
+ # A050976
16
+ 4 => 2.coprime(4).first(78).zip([1,2,3,3,5,6,2,4,9,3,11,10,9,14,5,5,6,18,6,10,7,6,
17
+ 23,21,4,26,10,9,29,30,3,6,33,11,35,9,10,15,39,27,
18
+ 41,4,14,11,6,5,18,24,15,50,51,6,53,18,18,14,22,6,
19
+ 12,55,10,50,7,7,65,9,18,34,69,23,30,14,21,74,15, 12,10,26]),
20
+ # A050977
21
+ 5 => 2.coprime(5).first(81).zip([1,2,1,2,6,2,6,5,2,4,6,4,16,6,9,6,5,22,2,4,18,6,
22
+ 14,3,8,10,16,6,36,9,4,20,6,42,5,22,46,4,42,16,4,
23
+ 52,18,6,18,14,29,30,3,6,16,10,22,16,22,5,6,72,36,
24
+ 9,30,4,39,54,20,82,6,42,14,10,44,12,22,6,46,8,96, 42,30,25,16]),
25
+
26
+ # A050978
27
+ 6 => 2.coprime(6).first(67).zip([1,2,10,12,16,9,11,5,14,6,2,4,40,3,23,14,26,10,58,
28
+ 60,12,33,35,36,10,78,82,16,88,12,9,12,10,102,106,
29
+ 108,112,11,16,110,25,126,130,18,136,23,60,14,37,
30
+ 150,6,156,22,27,83,156,43,10,178,60,4,80,19,96,14, 198,14]),
31
+
32
+ # A050979
33
+ 7 => 2.coprime(7).first(81).zip([1,1,2,4,1,2,3,4,10,2,12,4,2,16,3,3,4,10,22,2,4,
34
+ 12,9,7,4,15,4,10,16,6,9,3,12,4,40,6,10,12,22,23,2,
35
+ 4,16,12,26,9,20,3,7,29,4,60,15,8,12,10,66,16,22,
36
+ 70,6,24,9,4,6,12,78,4,27,40,41,16,6,7,10,88,12,22, 15,23,12]),
37
+ # A050980
38
+ 8 => 2.coprime(8).first(75).zip([2,4,1,2,10,4,4,8,6,2,11,20,6,28,5,10,4,12,4,20,
39
+ 14,4,23,7,8,52,20,6,58,20,2,4,22,22,35,3,20,10,13,
40
+ 18,82,8,28,11,4,10,12,16,10,100,17,4,106,12,12,28,
41
+ 44,4,8,110,20,100,7,14,130,6,12,68,46,46,20,28,14, 148,5]),
42
+
43
+ # A050981
44
+ 9 => 2.coprime(9).first(82).zip([1,1,2,3,1,2,5,3,3,2,8,9,2,5,11,10,3,3,14,15,4,8,
45
+ 6,9,9,2,4,21,5,11,23,21,10,3,26,10,3,14,29,5,15,8,
46
+ 6,11,8,6,35,6,9,9,15,39,2,4,41,8,21,5,44,3,11,23,
47
+ 18,24,21,10,50,17,3,26,53,27,10,6,56,22,14,29,24, 5,5,15]),
48
+
49
+ # A002329
50
+ 10 => 2.coprime(10).first(52).zip([1,6,1,2,6,16,18,6,22,3,28,15,2,3,6,5,21,46,42,16,
51
+ 13,18,58,60,6,33,22,35,8,6,13,9,41,28,44,6,15,96,
52
+ 2,4,34,53,108,3,112,6,48,22,5,42,21,130])
53
+
54
+ }
55
+
56
+ @seq.each do |a, seq|
57
+ seq.each do |n, k|
58
+ it "returns #{k} for #{a}.ord(#{n})" do
59
+ a.ord(n).should == k
60
+ end
61
+ end
62
+
63
+ it "returns nil for #{a}.ord(#{a})" do
64
+ a.ord(a).should be_nil
65
+ end
66
+
67
+ b = a * rand(100)
68
+ it "returns nil for #{a}.ord(#{b})" do
69
+ a.ord(b).should be_nil
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,45 @@
1
+ # coding: utf-8
2
+ describe Integer, "#power_mod" do
3
+ @seq = {
4
+ # A015910
5
+ 2 => [0,0,2,0,2,4,2,0,8,4,2,4,2,4,8,0,2,10,2,16,8,4,2,
6
+ 16,7,4,26,16,2,4,2,0,8,4,18,28,2,4,8,16,2,22,2,16,
7
+ 17,4,2,16,30,24,8,16,2,28,43,32,8,4,2,16,2,4,8,0,
8
+ 32,64,2,16,8,44,2,64,2,4,68,16,18,64,2,16,80,4,2,
9
+ 64].map.with_index(1){|pm, b| [pm, b, b]},
10
+
11
+ # A002380
12
+ 3 => [0,1,1,3,1,19,25,11,161,227,681,1019,3057,5075,
13
+ 15225,29291,55105,34243,233801,439259,269201,
14
+ 1856179,3471385,6219851,1882337,5647011,50495465,
15
+ 17268667,186023729,21200275,63600825,1264544299,
16
+ 3793632897,7085931395].map.with_index{|pm, b| [pm, b, 2**b]},
17
+
18
+ # A056969
19
+ 10 => [0,0,1,0,0,4,3,0,1,0,10,4,10,2,10,0,10,10,10,0,13,
20
+ 12,10,16,0,22,1,4,10,10,10,0,10,32,5,28,10,24,25,
21
+ 0,10,22,10,12,10,8,10,16,31,0,31,16,10,28,10,16,
22
+ 31,42,10,40,10,38,55,0,30,34,10,4,34,60,10,64,10,
23
+ 26,25,44,54,40].map.with_index(1){|pm, b| [pm, b, b]} + [
24
+ 0,0,1,0,0,4,4,0,1,0,1,4,3,4,10,0,4,10,9,0,4,12,
25
+ 13,16,0,16,10,4,16,10,5,0,1,4,25,28,10,28,16,0,1,
26
+ 4,31,12,10,36,27,16,11,0,4,16,28,10,45,32,28,16,
27
+ 16,40,47,36,46,0,55,34,10,4,13,60,20,64,72,10,25,
28
+ 28,67,16,67,0].map.with_index(1){|pm, b| [pm, 100, b]},
29
+
30
+ # A116609
31
+ 13 => [0,1,1,1,3,1,6,1,1,9,2,1,0,1,7,1,13,1,13,1,13,15,
32
+ 13,1,18,13,1,1,13,19,13,1,19,33,27,1,13,17,13,1,
33
+ 13,1,13,5,28,31,13,1,48,49,4,13,13,1,32,1,31,53,
34
+ 13,1,13,45,55,1,13,31,13,1,58,29,13,1,13,21,7,61,
35
+ 62,13,13,1,1,5].map.with_index(1){|pm, b| [pm, b, b]}
36
+ }
37
+
38
+ @seq.each do |a, seq|
39
+ seq.each do |pm, b, m|
40
+ it "returns #{pm} for #{a}.power_mod(#{b}, #{m})" do
41
+ a.power_mod(b, m).should == pm
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,25 @@
1
+ describe Integer, "#xgcd" do
2
+
3
+ # Data from Mathematica's ExtendedGCD[] function
4
+ # The keys are the arguments; the values, the results.
5
+ @seq = {
6
+ [56, 72] => [8, 4, -3],
7
+ [3, 7] => [1, -2, 1],
8
+ [10, 100] => [10, 1, 0],
9
+ [13, 11] => [1, -5, 6],
10
+ [79, 3] => [1, 1, -26],
11
+ [3, 65] => [1, 22, -1],
12
+ [-3, 65] => [1, -22, -1],
13
+ [3, -65] => [1, 22, 1],
14
+ [5, 0] => [5, 1, 0],
15
+ [73713, 3971] => [1, -1512, 28067],
16
+ [-234, 2] => [2, 0, 1],
17
+ [-876, 52] => [4, -6, -101],
18
+ }
19
+
20
+ @seq.each_pair do |input, output|
21
+ it "returns #{output} for #{input.first}.xgcd(#{input.last})" do
22
+ input.first.xgcd(input.last).should == output
23
+ end
24
+ end
25
+ end
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: numb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.181.0
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 184
8
+ - 0
9
+ version: 0.184.0
5
10
  platform: ruby
6
11
  authors:
7
12
  - Run Paint Run Run
@@ -9,19 +14,24 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-03-27 00:00:00 +00:00
17
+ date: 2010-10-17 00:00:00 +01:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: gemcutter
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
20
25
  requirements:
21
26
  - - ">="
22
27
  - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
30
+ - 1
31
+ - 0
23
32
  version: 0.1.0
24
- version:
33
+ type: :runtime
34
+ version_requirements: *id001
25
35
  description:
26
36
  email: runrun@runpaint.org
27
37
  executables: []
@@ -92,7 +102,9 @@ files:
92
102
  - lib/numb/idempotent.rb
93
103
  - lib/numb/idoneal.rb
94
104
  - lib/numb/in_sequence.rb
105
+ - lib/numb/inrt.rb
95
106
  - lib/numb/integer_p.rb
107
+ - lib/numb/inv_mod.rb
96
108
  - lib/numb/jacobsthal_lucas.rb
97
109
  - lib/numb/kaprekar.rb
98
110
  - lib/numb/keith.rb
@@ -121,6 +133,7 @@ files:
121
133
  - lib/numb/nsw.rb
122
134
  - lib/numb/oban.rb
123
135
  - lib/numb/odious.rb
136
+ - lib/numb/ord.rb
124
137
  - lib/numb/ordinal.rb
125
138
  - lib/numb/palindrome.rb
126
139
  - lib/numb/pandigital.rb
@@ -131,6 +144,7 @@ files:
131
144
  - lib/numb/polydivisible.rb
132
145
  - lib/numb/positive.rb
133
146
  - lib/numb/poulet.rb
147
+ - lib/numb/power_mod.rb
134
148
  - lib/numb/prime_power.rb
135
149
  - lib/numb/primes.rb
136
150
  - lib/numb/primitive_root.rb
@@ -171,6 +185,7 @@ files:
171
185
  - lib/numb/words.rb
172
186
  - lib/numb/zeisel.rb
173
187
  - lib/numb/zerofree.rb
188
+ - spec/.rspec
174
189
  - spec/numb/aban_spec.rb
175
190
  - spec/numb/abundancy_spec.rb
176
191
  - spec/numb/abundant_spec.rb
@@ -235,6 +250,7 @@ files:
235
250
  - spec/numb/equidigital_spec.rb
236
251
  - spec/numb/euclid_spec.rb
237
252
  - spec/numb/evil_spec.rb
253
+ - spec/numb/exceptional_spec.rb
238
254
  - spec/numb/extravagant_spec.rb
239
255
  - spec/numb/factorial_spec.rb
240
256
  - spec/numb/factorion_spec.rb
@@ -265,8 +281,10 @@ files:
265
281
  - spec/numb/idoneal_spec.rb
266
282
  - spec/numb/infinitary_divisors_spec.rb
267
283
  - spec/numb/infinitary_perfect_spec.rb
284
+ - spec/numb/inrt_spec.rb
268
285
  - spec/numb/integer_p_spec.rb
269
286
  - spec/numb/interprime_spec.rb
287
+ - spec/numb/inv_mod_spec.rb
270
288
  - spec/numb/isqrt_spec.rb
271
289
  - spec/numb/jacobsthal_lucas_spec.rb
272
290
  - spec/numb/k_perfect_spec.rb
@@ -310,6 +328,7 @@ files:
310
328
  - spec/numb/octagonal_spec.rb
311
329
  - spec/numb/octahedral_spec.rb
312
330
  - spec/numb/odious_spec.rb
331
+ - spec/numb/ord_spec.rb
313
332
  - spec/numb/ordinal_spec.rb
314
333
  - spec/numb/ore_spec.rb
315
334
  - spec/numb/palindrome_spec.rb
@@ -327,6 +346,7 @@ files:
327
346
  - spec/numb/polydivisible_spec.rb
328
347
  - spec/numb/positive_spec.rb
329
348
  - spec/numb/poulet_spec.rb
349
+ - spec/numb/power_mod_spec.rb
330
350
  - spec/numb/powerful_spec.rb
331
351
  - spec/numb/practical_spec.rb
332
352
  - spec/numb/prime_count_spec.rb
@@ -409,9 +429,9 @@ files:
409
429
  - spec/numb/wieferich_prime_spec.rb
410
430
  - spec/numb/woodall_spec.rb
411
431
  - spec/numb/words_spec.rb
432
+ - spec/numb/xgcd_spec.rb
412
433
  - spec/numb/zeisel_spec.rb
413
434
  - spec/numb/zerofree_spec.rb
414
- - spec/spec.opts
415
435
  - spec/spec_helper.rb
416
436
  has_rdoc: yard
417
437
  homepage: http://github.com/runpaint/numb
@@ -423,263 +443,274 @@ rdoc_options: []
423
443
  require_paths:
424
444
  - lib
425
445
  required_ruby_version: !ruby/object:Gem::Requirement
446
+ none: false
426
447
  requirements:
427
448
  - - ">="
428
449
  - !ruby/object:Gem::Version
450
+ segments:
451
+ - 1
452
+ - 9
429
453
  version: "1.9"
430
- version:
431
454
  required_rubygems_version: !ruby/object:Gem::Requirement
455
+ none: false
432
456
  requirements:
433
457
  - - ">="
434
458
  - !ruby/object:Gem::Version
459
+ segments:
460
+ - 0
435
461
  version: "0"
436
- version:
437
462
  requirements: []
438
463
 
439
464
  rubyforge_project:
440
- rubygems_version: 1.3.5
465
+ rubygems_version: 1.3.7
441
466
  signing_key:
442
467
  specification_version: 3
443
468
  summary: Experiments in number theory with new predicate methods for Integer.
444
469
  test_files:
445
- - spec/numb/leonardo_spec.rb
446
- - spec/numb/economical_spec.rb
447
- - spec/numb/base_spec.rb
448
- - spec/numb/proth_spec.rb
449
- - spec/numb/stella_octangula_spec.rb
450
- - spec/numb/prime_signature_spec.rb
451
- - spec/numb/reciprocal_spec.rb
452
- - spec/numb/mersenne_spec.rb
453
- - spec/numb/unitary_divisor_spec.rb
454
- - spec/numb/centered_square_spec.rb
455
- - spec/numb/primitive_pseudoperfect_spec.rb
470
+ - spec/spec_helper.rb
471
+ - spec/numb/augmented_amicable_spec.rb
472
+ - spec/numb/trimorphic_spec.rb
473
+ - spec/numb/betrothed_spec.rb
474
+ - spec/numb/digital_sum_spec.rb
456
475
  - spec/numb/polydivisible_spec.rb
457
- - spec/numb/mangoldt_spec.rb
458
- - spec/numb/choose_spec.rb
459
- - spec/numb/n_step_fibonacci_spec.rb
460
- - spec/numb/sum_of_infinitary_divisors_spec.rb
461
- - spec/numb/strictly_non_palindromic_spec.rb
462
- - spec/numb/gnomonic_spec.rb
463
- - spec/numb/cyclic_spec.rb
464
- - spec/numb/iban_spec.rb
465
- - spec/numb/equidigital_spec.rb
466
- - spec/numb/primorial_spec.rb
467
- - spec/numb/prime_power_spec.rb
468
- - spec/numb/superabundant_spec.rb
469
- - spec/numb/modulo_order_spec.rb
470
- - spec/numb/sociable_spec.rb
471
- - spec/numb/unitary_perfect_spec.rb
472
- - "spec/numb/schr\xC3\xB6der_spec.rb"
473
- - spec/numb/nivenmorphic_spec.rb
474
- - spec/numb/dudeney_spec.rb
475
- - spec/numb/centered_triangular_spec.rb
476
476
  - spec/numb/square_free_spec.rb
477
- - spec/numb/knodel_spec.rb
478
- - spec/numb/fermat_pseudoprime_spec.rb
479
- - spec/numb/abundant_spec.rb
477
+ - spec/numb/woodall_spec.rb
478
+ - spec/numb/unitary_sociable_spec.rb
479
+ - spec/numb/refactorable_spec.rb
480
+ - spec/numb/maris_mcgwire_sosa_pair_spec.rb
481
+ - spec/numb/zeisel_spec.rb
482
+ - spec/numb/q_spec.rb
483
+ - spec/numb/centered_cube_spec.rb
484
+ - spec/numb/blum_spec.rb
480
485
  - spec/numb/superperfect_spec.rb
481
- - spec/numb/biquadratic_spec.rb
482
- - spec/numb/self_spec.rb
483
- - spec/numb/pandigital_spec.rb
486
+ - spec/numb/power_mod_spec.rb
487
+ - spec/numb/proth_spec.rb
488
+ - spec/numb/emrip_spec.rb
489
+ - spec/numb/minimal_spec.rb
490
+ - spec/numb/weird_spec.rb
491
+ - spec/numb/practical_spec.rb
492
+ - spec/numb/ore_spec.rb
493
+ - spec/numb/base_spec.rb
494
+ - spec/numb/achilles_spec.rb
495
+ - spec/numb/uban_spec.rb
496
+ - spec/numb/lah_spec.rb
497
+ - spec/numb/delannoy_spec.rb
498
+ - spec/numb/beastly_spec.rb
499
+ - spec/numb/smarandache_spec.rb
500
+ - spec/numb/narcissistic_spec.rb
501
+ - spec/numb/totient_spec.rb
502
+ - spec/numb/core_spec.rb
503
+ - spec/numb/star_spec.rb
504
+ - spec/numb/inv_mod_spec.rb
484
505
  - spec/numb/ruler_spec.rb
485
- - spec/numb/square_spec.rb
486
- - spec/numb/quarticfree_spec.rb
487
- - spec/numb/untouchable_spec.rb
488
- - spec/numb/ordinal_spec.rb
489
- - spec/numb/perfect_spec.rb
490
- - spec/numb/perfect_power_spec.rb
491
- - spec/numb/factorial_spec.rb
492
- - spec/numb/centered_cube_spec.rb
493
- - "spec/numb/m\xC3\xA9nage_spec.rb"
494
506
  - spec/numb/carmichael_spec.rb
495
- - spec/numb/woodall_spec.rb
496
- - spec/numb/abundancy_spec.rb
497
- - spec/numb/giuga_spec.rb
498
- - spec/numb/polite_spec.rb
499
- - spec/numb/unitary_amicable_spec.rb
500
- - spec/numb/squared_triangular_spec.rb
501
- - spec/numb/persistent_spec.rb
502
- - spec/numb/cullen_spec.rb
503
- - spec/numb/palindrome_spec.rb
504
- - spec/numb/smarandache_spec.rb
505
- - spec/numb/zerofree_spec.rb
506
- - spec/numb/eban_spec.rb
507
- - spec/numb/automorphic_spec.rb
508
- - spec/numb/fermat_spec.rb
509
- - spec/numb/stirling_spec.rb
510
- - spec/numb/minimal_spec.rb
511
- - spec/numb/jacobsthal_lucas_spec.rb
507
+ - spec/numb/cube_spec.rb
512
508
  - spec/numb/aban_spec.rb
509
+ - spec/numb/semiprime_spec.rb
510
+ - spec/numb/fermat_spec.rb
511
+ - spec/numb/abundant_spec.rb
512
+ - spec/numb/hoax_spec.rb
513
+ - spec/numb/goldbach_spec.rb
514
+ - spec/numb/heptagonal_spec.rb
515
+ - spec/numb/harshad_spec.rb
516
+ - spec/numb/aspiring_spec.rb
517
+ - spec/numb/evil_spec.rb
518
+ - spec/numb/cyclic_spec.rb
519
+ - spec/numb/unusual_spec.rb
520
+ - spec/numb/square_part_spec.rb
521
+ - spec/numb/demlo_spec.rb
522
+ - spec/numb/sum_of_divisors_spec.rb
523
+ - spec/numb/mersenne_spec.rb
524
+ - spec/numb/polite_spec.rb
525
+ - spec/numb/iban_spec.rb
513
526
  - spec/numb/hyperperfect_spec.rb
514
- - spec/numb/segmented_spec.rb
515
- - spec/numb/uban_spec.rb
516
- - spec/numb/zeisel_spec.rb
517
- - spec/numb/motzkin_spec.rb
527
+ - spec/numb/cubic_residue_spec.rb
528
+ - spec/numb/palindrome_spec.rb
529
+ - spec/numb/carol_spec.rb
530
+ - spec/numb/prime_count_spec.rb
531
+ - spec/numb/reverse_spec.rb
532
+ - spec/numb/bernoulli_spec.rb
533
+ - spec/numb/square_spec.rb
534
+ - spec/numb/leyland_spec.rb
535
+ - spec/numb/ramanujan_tau_spec.rb
536
+ - spec/numb/mersenne_prime_spec.rb
537
+ - spec/numb/self_spec.rb
538
+ - spec/numb/poulet_spec.rb
539
+ - spec/numb/repunit_spec.rb
518
540
  - spec/numb/primitive_roots_spec.rb
519
- - spec/numb/first_with_n_divisors_spec.rb
520
- - spec/numb/smooth_spec.rb
521
- - spec/numb/d_spec.rb
522
- - spec/numb/heptagonal_spec.rb
523
- - spec/numb/kynea_spec.rb
524
- - spec/numb/sum_of_squares_spec.rb
525
- - spec/numb/centered_hexagonal_spec.rb
526
- - spec/numb/centered_n_gonal_spec.rb
541
+ - spec/numb/self_descriptive_spec.rb
542
+ - spec/numb/twin_prime_spec.rb
543
+ - spec/numb/fibonacci_spec.rb
544
+ - spec/numb/jacobsthal_lucas_spec.rb
545
+ - spec/numb/unitary_perfect_spec.rb
546
+ - spec/numb/choose_spec.rb
527
547
  - spec/numb/highly_abundant_spec.rb
548
+ - spec/numb/idoneal_spec.rb
549
+ - spec/numb/unitary_divisor_spec.rb
550
+ - spec/numb/centered_n_gonal_spec.rb
551
+ - spec/numb/stirling_spec.rb
552
+ - spec/numb/untouchable_spec.rb
553
+ - spec/numb/cullen_spec.rb
554
+ - spec/numb/d_spec.rb
555
+ - spec/numb/centered_pentagonal_spec.rb
556
+ - spec/numb/politeness_spec.rb
557
+ - spec/numb/modulo_order_spec.rb
558
+ - spec/numb/quarticfree_spec.rb
559
+ - spec/numb/strictly_non_palindromic_spec.rb
560
+ - spec/numb/octagonal_spec.rb
561
+ - spec/numb/takeuchi_spec.rb
562
+ - spec/numb/amenable_spec.rb
563
+ - spec/numb/sum_of_unitary_divisors_spec.rb
528
564
  - spec/numb/e_perfect_spec.rb
529
- - spec/numb/super_catalan_spec.rb
530
- - spec/numb/augmented_amicable_spec.rb
531
- - spec/numb/rough_spec.rb
532
- - spec/numb/nonhypotenuse_spec.rb
533
- - spec/numb/near_square_spec.rb
534
- - spec/numb/emrip_spec.rb
535
- - spec/numb/idempotent_spec.rb
536
- - spec/numb/nexus_spec.rb
537
- - spec/numb/nth_prime_spec.rb
538
- - spec/numb/poulet_spec.rb
539
- - spec/numb/congruum_spec.rb
540
- - spec/numb/hamming_spec.rb
541
- - spec/numb/octahedral_spec.rb
565
+ - spec/numb/positive_spec.rb
566
+ - spec/numb/undulating_spec.rb
567
+ - spec/numb/friendly_spec.rb
568
+ - spec/numb/rhonda_spec.rb
569
+ - spec/numb/prime_signature_spec.rb
570
+ - spec/numb/oban_spec.rb
571
+ - spec/numb/super_d_spec.rb
572
+ - spec/numb/economical_spec.rb
573
+ - spec/numb/kynea_spec.rb
574
+ - spec/numb/full_reptend_prime_spec.rb
575
+ - spec/numb/semi_perfect_spec.rb
576
+ - spec/numb/binomial_spec.rb
577
+ - spec/numb/pyramidal_spec.rb
578
+ - spec/numb/odious_spec.rb
579
+ - spec/numb/sophie_germain_prime_spec.rb
542
580
  - spec/numb/doubly_even_spec.rb
543
- - spec/numb/safe_prime_spec.rb
581
+ - spec/numb/k_perfect_spec.rb
582
+ - spec/numb/pandigital_spec.rb
583
+ - spec/numb/frugal_spec.rb
584
+ - spec/numb/triangular_spec.rb
585
+ - spec/numb/octahedral_spec.rb
586
+ - spec/numb/super_poulet_spec.rb
587
+ - spec/numb/unitary_amicable_spec.rb
588
+ - spec/numb/myriagonal_spec.rb
589
+ - spec/numb/amicable_spec.rb
544
590
  - spec/numb/bell_spec.rb
545
- - spec/numb/square_part_spec.rb
591
+ - spec/numb/super_catalan_spec.rb
592
+ - spec/numb/motzkin_spec.rb
593
+ - spec/numb/mobius_spec.rb
594
+ - spec/numb/chen_prime_spec.rb
595
+ - spec/numb/pentatope_spec.rb
596
+ - spec/numb/centered_triangular_spec.rb
597
+ - spec/numb/liouville_spec.rb
598
+ - spec/numb/lychrel_spec.rb
599
+ - spec/numb/stella_octangula_spec.rb
600
+ - spec/numb/lucas_spec.rb
601
+ - spec/numb/persistent_spec.rb
602
+ - spec/numb/sum_of_infinitary_divisors_spec.rb
603
+ - spec/numb/integer_p_spec.rb
604
+ - spec/numb/biquadratic_spec.rb
605
+ - spec/numb/perfect_power_spec.rb
606
+ - spec/numb/multiamicable_spec.rb
607
+ - spec/numb/automorphic_spec.rb
608
+ - spec/numb/safe_prime_spec.rb
609
+ - spec/numb/brilliant_spec.rb
610
+ - spec/numb/breeder_spec.rb
611
+ - spec/numb/hilbert_spec.rb
612
+ - spec/numb/brown_spec.rb
613
+ - spec/numb/words_spec.rb
614
+ - spec/numb/extravagant_spec.rb
546
615
  - spec/numb/sublime_spec.rb
547
- - spec/numb/refactorable_spec.rb
616
+ - spec/numb/leonardo_spec.rb
617
+ - spec/numb/lucas_carmichael_spec.rb
548
618
  - spec/numb/subfactorial_spec.rb
549
- - spec/numb/betrothed_spec.rb
550
- - spec/numb/smith_spec.rb
551
- - spec/numb/unusual_spec.rb
552
- - spec/numb/hoax_spec.rb
553
- - spec/numb/octagonal_spec.rb
619
+ - spec/numb/parasitic_spec.rb
620
+ - spec/numb/giuga_spec.rb
621
+ - spec/numb/mertens_spec.rb
622
+ - spec/numb/lucas2_spec.rb
623
+ - spec/numb/highly_composite_spec.rb
624
+ - spec/numb/quadratic_residue_spec.rb
625
+ - spec/numb/unhappy_spec.rb
626
+ - spec/numb/e_divisors_spec.rb
627
+ - spec/numb/franel_spec.rb
628
+ - spec/numb/nsw_spec.rb
554
629
  - spec/numb/knuth_spec.rb
630
+ - spec/numb/first_with_n_divisors_spec.rb
631
+ - spec/numb/isqrt_spec.rb
632
+ - spec/numb/inrt_spec.rb
633
+ - spec/numb/nexus_spec.rb
634
+ - spec/numb/wieferich_prime_spec.rb
635
+ - spec/numb/idempotent_spec.rb
555
636
  - spec/numb/entringer_spec.rb
556
- - spec/numb/unitary_sociable_spec.rb
557
- - spec/numb/full_reptend_prime_spec.rb
558
- - spec/numb/quadratic_residue_spec.rb
559
- - spec/numb/vampire_spec.rb
560
- - spec/numb/tetrahedral_spec.rb
561
- - spec/numb/dodecagonal_spec.rb
562
- - spec/numb/dihedral_prime_spec.rb
563
- - spec/numb/breeder_spec.rb
564
- - spec/numb/sphenic_spec.rb
565
- - spec/numb/reverse_spec.rb
566
- - spec/numb/idoneal_spec.rb
567
- - spec/numb/sum_of_unitary_divisors_spec.rb
637
+ - spec/numb/divides_spec.rb
638
+ - spec/numb/rough_spec.rb
639
+ - spec/numb/singly_even_spec.rb
640
+ - spec/numb/prime_power_spec.rb
568
641
  - spec/numb/square_triangular_spec.rb
569
- - spec/numb/lucas_carmichael_spec.rb
570
- - spec/numb/rhonda_spec.rb
571
- - spec/numb/totient_spec.rb
572
- - spec/numb/leyland_spec.rb
573
- - spec/numb/mersenne_prime_spec.rb
574
- - spec/numb/chen_prime_spec.rb
642
+ - spec/numb/coprime_spec.rb
643
+ - spec/numb/perfect_spec.rb
644
+ - spec/numb/almost_prime_spec.rb
645
+ - spec/numb/number_of_distinct_prime_factors_spec.rb
646
+ - spec/numb/achain_spec.rb
647
+ - spec/numb/primitive_root_spec.rb
648
+ - spec/numb/primitive_pseudoperfect_spec.rb
575
649
  - spec/numb/composite_spec.rb
576
- - spec/numb/practical_spec.rb
577
- - spec/numb/words_spec.rb
578
- - spec/numb/sophie_germain_prime_spec.rb
579
- - spec/numb/parasitic_spec.rb
580
- - spec/numb/friendly_spec.rb
581
650
  - spec/numb/number_of_prime_factors_spec.rb
582
- - spec/numb/repunit_spec.rb
583
- - spec/numb/goldbach_spec.rb
584
- - spec/numb/highly_composite_spec.rb
585
- - spec/numb/frugal_spec.rb
586
- - spec/numb/divides_spec.rb
587
- - spec/numb/takeuchi_spec.rb
588
- - spec/numb/pentatope_spec.rb
589
- - spec/numb/odious_spec.rb
590
- - spec/numb/euclid_spec.rb
591
- - spec/numb/semiprime_spec.rb
592
- - spec/numb/deficient_spec.rb
593
- - spec/numb/centered_pentagonal_spec.rb
651
+ - spec/numb/smooth_spec.rb
652
+ - spec/numb/reciprocal_spec.rb
653
+ - spec/numb/hamming_spec.rb
654
+ - spec/numb/eban_spec.rb
655
+ - spec/numb/stirling2_spec.rb
656
+ - spec/numb/interprime_spec.rb
657
+ - spec/numb/factorial_spec.rb
658
+ - spec/numb/superabundant_spec.rb
659
+ - spec/numb/sociable_spec.rb
660
+ - spec/numb/dudeney_spec.rb
661
+ - spec/numb/pell_lucas_spec.rb
662
+ - spec/numb/mangoldt_spec.rb
663
+ - spec/numb/near_square_spec.rb
664
+ - spec/numb/primorial_spec.rb
665
+ - spec/numb/dodecagonal_spec.rb
666
+ - spec/numb/fermat_pseudoprime_spec.rb
667
+ - spec/numb/vampire_spec.rb
594
668
  - spec/numb/almost_perfect_spec.rb
595
- - spec/numb/amicable_spec.rb
596
- - spec/numb/brilliant_spec.rb
597
- - spec/numb/amenable_spec.rb
598
- - spec/numb/happy_spec.rb
599
- - spec/numb/twin_prime_spec.rb
600
- - spec/numb/hexagonal_spec.rb
601
- - spec/numb/nsw_spec.rb
602
669
  - spec/numb/primitive_abundant_spec.rb
603
- - spec/numb/liouville_spec.rb
604
- - spec/numb/lucas2_spec.rb
605
- - spec/numb/genocchi_spec.rb
606
- - spec/numb/wieferich_prime_spec.rb
607
- - spec/numb/cubic_residue_spec.rb
608
- - spec/numb/fibonacci_spec.rb
609
- - spec/numb/triangular_spec.rb
610
- - spec/numb/integer_p_spec.rb
670
+ - spec/numb/nth_prime_spec.rb
611
671
  - spec/numb/infinitary_perfect_spec.rb
612
- - spec/numb/semi_perfect_spec.rb
613
- - spec/numb/pentagonal_spec.rb
614
- - spec/numb/blum_spec.rb
615
- - spec/numb/stirling2_spec.rb
616
- - spec/numb/demlo_spec.rb
672
+ - spec/numb/happy_spec.rb
673
+ - spec/numb/decagonal_spec.rb
674
+ - spec/numb/nivenmorphic_spec.rb
675
+ - spec/numb/genocchi_spec.rb
676
+ - spec/numb/segmented_spec.rb
677
+ - spec/numb/squared_triangular_spec.rb
678
+ - spec/numb/centered_hexagonal_spec.rb
679
+ - spec/numb/tetrahedral_spec.rb
680
+ - spec/numb/gnomonic_spec.rb
681
+ - spec/numb/hexagonal_spec.rb
682
+ - spec/numb/pronic_spec.rb
683
+ - spec/numb/ord_spec.rb
684
+ - spec/numb/dihedral_prime_spec.rb
685
+ - spec/numb/exceptional_spec.rb
686
+ - spec/numb/congruum_spec.rb
687
+ - spec/numb/sum_of_squares_spec.rb
617
688
  - spec/numb/smarandache_wellin_spec.rb
618
- - spec/numb/maris_mcgwire_sosa_pair_spec.rb
619
- - spec/numb/pell_lucas_spec.rb
620
- - spec/numb/core_spec.rb
621
- - spec/numb/lucas_spec.rb
622
- - spec/numb/k_perfect_spec.rb
623
- - spec/numb/trimorphic_spec.rb
624
- - spec/numb/evil_spec.rb
625
- - spec/numb/harshad_spec.rb
626
- - spec/numb/star_spec.rb
627
- - spec/numb/cube_spec.rb
628
- - spec/numb/ore_spec.rb
629
- - spec/numb/achain_spec.rb
630
- - spec/numb/delannoy_spec.rb
631
- - spec/numb/carol_spec.rb
632
- - spec/numb/powerful_spec.rb
633
- - spec/numb/prime_count_spec.rb
634
- - spec/numb/q_spec.rb
635
- - spec/numb/primitive_root_spec.rb
636
- - spec/numb/weird_spec.rb
637
- - spec/numb/interprime_spec.rb
638
- - spec/numb/number_of_distinct_prime_factors_spec.rb
639
- - spec/numb/mertens_spec.rb
689
+ - "spec/numb/st\xC3\xB8rmer_spec.rb"
690
+ - spec/numb/kaprekar_spec.rb
691
+ - "spec/numb/schr\xC3\xB6der_spec.rb"
640
692
  - spec/numb/catalan_spec.rb
693
+ - spec/numb/factorion_spec.rb
641
694
  - spec/numb/balanced_prime_spec.rb
642
- - spec/numb/binomial_spec.rb
643
- - spec/numb/digital_sum_spec.rb
644
- - spec/numb/brown_spec.rb
695
+ - spec/numb/abundancy_spec.rb
696
+ - spec/numb/smith_spec.rb
697
+ - "spec/numb/m\xC3\xA9nage_spec.rb"
698
+ - spec/numb/zerofree_spec.rb
699
+ - spec/numb/n_step_fibonacci_spec.rb
700
+ - spec/numb/euclid_spec.rb
701
+ - spec/numb/noncototient_spec.rb
645
702
  - spec/numb/perrin_spec.rb
646
- - spec/numb/beastly_spec.rb
647
- - spec/numb/franel_spec.rb
648
- - spec/numb/multiamicable_spec.rb
649
- - spec/numb/super_poulet_spec.rb
703
+ - spec/numb/centered_square_spec.rb
704
+ - spec/numb/sphenic_spec.rb
650
705
  - spec/numb/sum_of_e_divisors_spec.rb
651
- - spec/numb/pyramidal_spec.rb
652
- - spec/numb/ramanujan_tau_spec.rb
653
- - spec/numb/super_d_spec.rb
654
- - spec/numb/factorion_spec.rb
655
- - spec/numb/lah_spec.rb
656
- - spec/numb/undulating_spec.rb
657
- - spec/numb/extravagant_spec.rb
658
- - spec/numb/sum_of_divisors_spec.rb
659
- - spec/numb/lychrel_spec.rb
660
- - spec/numb/self_descriptive_spec.rb
661
- - spec/numb/decagonal_spec.rb
662
- - spec/numb/e_divisors_spec.rb
663
706
  - spec/numb/apocalyptic_spec.rb
664
- - spec/numb/bernoulli_spec.rb
665
- - spec/numb/kaprekar_spec.rb
666
- - spec/numb/isqrt_spec.rb
667
- - spec/numb/hilbert_spec.rb
668
- - "spec/numb/st\xC3\xB8rmer_spec.rb"
669
- - spec/numb/keith_spec.rb
670
- - spec/numb/narcissistic_spec.rb
671
- - spec/numb/myriagonal_spec.rb
672
- - spec/numb/oban_spec.rb
673
- - spec/numb/achilles_spec.rb
674
- - spec/numb/coprime_spec.rb
675
707
  - spec/numb/infinitary_divisors_spec.rb
676
- - spec/numb/almost_prime_spec.rb
677
- - spec/numb/singly_even_spec.rb
678
- - spec/numb/pronic_spec.rb
679
- - spec/numb/politeness_spec.rb
680
- - spec/numb/noncototient_spec.rb
681
- - spec/numb/aspiring_spec.rb
682
- - spec/numb/mobius_spec.rb
683
- - spec/numb/positive_spec.rb
684
- - spec/numb/unhappy_spec.rb
685
- - spec/spec_helper.rb
708
+ - spec/numb/nonhypotenuse_spec.rb
709
+ - spec/numb/deficient_spec.rb
710
+ - spec/numb/knodel_spec.rb
711
+ - spec/numb/powerful_spec.rb
712
+ - spec/numb/ordinal_spec.rb
713
+ - spec/numb/equidigital_spec.rb
714
+ - spec/numb/keith_spec.rb
715
+ - spec/numb/xgcd_spec.rb
716
+ - spec/numb/pentagonal_spec.rb
File without changes