numb 0.77.0 → 0.84.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/aliquot_sequence.rb +13 -0
- data/lib/numb/aspiring.rb +0 -12
- data/lib/numb/evil.rb +5 -0
- data/lib/numb/factorial.rb +11 -0
- data/lib/numb/odious.rb +7 -0
- data/lib/numb/sociable.rb +6 -0
- data/lib/numb/sum_of_unitary_divisors.rb +5 -0
- data/lib/numb/twin_prime.rb +5 -0
- data/lib/numb/unhappy.rb +5 -0
- data/lib/numb/unitary_amicable.rb +7 -0
- data/lib/numb/unitary_sociable.rb +7 -0
- data/lib/numb.rb +6 -27
- data/spec/evil_spec.rb +20 -0
- data/spec/factorial_spec.rb +21 -0
- data/spec/odious_spec.rb +19 -0
- data/spec/sociable_spec.rb +57 -0
- data/spec/spec_helper.rb +5 -1
- data/spec/sum_of_unitary_divisors_spec.rb +14 -0
- data/spec/twin_prime_spec.rb +31 -0
- data/spec/unhappy_spec.rb +20 -0
- data/spec/unitary_amicable_spec.rb +28 -0
- data/spec/unitary_sociable.rb +30 -0
- metadata +27 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.84.0
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
class Integer
|
3
|
+
def aliquot_sequence(max_iterations=(self > 100 ? 10 : Math.sqrt(self)),
|
4
|
+
summatory_function=->(n){ n.aliquot_sum })
|
5
|
+
sequence = [self]
|
6
|
+
max_iterations.floor.times do |limit|
|
7
|
+
sequence << summatory_function[sequence.last]
|
8
|
+
break if sequence[0..-2].include?(sequence.last)
|
9
|
+
return sequence << (1/0.0) if limit.succ == max_iterations
|
10
|
+
end
|
11
|
+
sequence
|
12
|
+
end
|
13
|
+
end
|
data/lib/numb/aspiring.rb
CHANGED
@@ -1,16 +1,4 @@
|
|
1
1
|
class Integer
|
2
|
-
def aliquot_sequence(max_iterations=(self > 100 ? 10 : Math.sqrt(self)))
|
3
|
-
sequence = [self]
|
4
|
-
max_iterations.floor.times do |limit|
|
5
|
-
divisors = sequence.last.proper_divisors
|
6
|
-
break if divisors.empty?
|
7
|
-
sequence << divisors.reduce(:+)
|
8
|
-
break if sequence[0..-2].include?(sequence.last)
|
9
|
-
return sequence << (1/0.0) if limit.succ == max_iterations
|
10
|
-
end
|
11
|
-
sequence
|
12
|
-
end
|
13
|
-
|
14
2
|
def aspiring?(max_iterations=10)
|
15
3
|
return false if perfect?
|
16
4
|
(last = aliquot_sequence(max_iterations).last).to_f.finite? ?
|
data/lib/numb/evil.rb
ADDED
data/lib/numb/factorial.rb
CHANGED
@@ -3,4 +3,15 @@ class Integer
|
|
3
3
|
return 1 if zero?
|
4
4
|
(1..self).reduce(:*)
|
5
5
|
end
|
6
|
+
|
7
|
+
def factorial?
|
8
|
+
divisors = self.divisors.sort
|
9
|
+
divisors.each_with_index do |d, i|
|
10
|
+
if divisors[i.succ] == d.succ
|
11
|
+
return true if d.factorial == self
|
12
|
+
else
|
13
|
+
return d.factorial == self
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
6
17
|
end
|
data/lib/numb/odious.rb
ADDED
data/lib/numb/unhappy.rb
ADDED
data/lib/numb.rb
CHANGED
@@ -1,29 +1,5 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
libs = %w{abundancy abundant achilles almost_perfect almost_prime amicable
|
4
|
-
apocalyptic aspiring augmented_amicable automorphic balanced_prime
|
5
|
-
base binomial biquadratic breeder brown carmichael carol
|
6
|
-
centered_n_gonal centered_triangular congruum composite coprime
|
7
|
-
core cototient cube d decagonal deficient dodecagonal dihedral_prime
|
8
|
-
dudeney economical emrip equidigital extravagant factorial factorion
|
9
|
-
fermat_pseudoprime fibonacci friendly frugal happy harshad
|
10
|
-
heptagonal hexagonal highly_composite highly_abundant hilbert
|
11
|
-
hyperperfect idoneal impolite integer_p interprime
|
12
|
-
jacobsthal_lucas kaprekar keith knodel k_perfect kynea
|
13
|
-
leonardo leyland lucas lucas_carmichael mersenne_prime minimal
|
14
|
-
mms_pair mobius myriagonal narcissistic next_prev_prime n_gonal
|
15
|
-
nivenmorphic noncototient nth_prime number_of_divisors octagonal
|
16
|
-
ordinal ore parasitic pentagonal perfect perfect_power polite
|
17
|
-
polydivisible positive poulet powerful practical prime_count
|
18
|
-
prime_signature primitive_pseudoperfect primorial pronic proth
|
19
|
-
quarticfree refactorable repunit rhonda rough self self_descriptive
|
20
|
-
semiperfect semiprime smarandache_wellin smith smooth
|
21
|
-
sophie_germain_prime sphenic square square_free sublime
|
22
|
-
sum_of_squares superabundant superperfect totient triangular
|
23
|
-
trimorphic undulating unitary_perfect unitary_divisor untouchable
|
24
|
-
vampire weird wieferich woodall zeisel zerofree
|
25
|
-
}
|
26
|
-
|
27
3
|
class Integer
|
28
4
|
def number_of_distinct_prime_factors
|
29
5
|
prime_factors.uniq.size
|
@@ -62,6 +38,11 @@ class Integer
|
|
62
38
|
end
|
63
39
|
alias :σ :sum_of_divisors
|
64
40
|
|
41
|
+
def aliquot_sum
|
42
|
+
return 0 if zero?
|
43
|
+
σ - self
|
44
|
+
end
|
45
|
+
|
65
46
|
def digital_root
|
66
47
|
self == 0 ? 0 : 1 + ((self - 1) % 9)
|
67
48
|
end
|
@@ -83,6 +64,4 @@ end
|
|
83
64
|
|
84
65
|
require 'prime'
|
85
66
|
|
86
|
-
|
87
|
-
require File.join(File.dirname(__FILE__), "numb/#{predicate}")
|
88
|
-
end
|
67
|
+
Dir.glob(File.dirname(__FILE__) + '/numb/*.rb').each {|file| require file}
|
data/spec/evil_spec.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
describe Integer, "#evil?" do
|
2
|
+
# A001969
|
3
|
+
@seq = [0,3,5,6,9,10,12,15,17,18,20,23,24,27,29,30,33,34,
|
4
|
+
36,39,40,43,45,46,48,51,53,54,57,58,60,63,65,66,
|
5
|
+
68,71,72,75,77,78,80,83,85,86,89,90,92,95,96,99,
|
6
|
+
101,102,105,106,108,111,113,114,116,119,120,123,
|
7
|
+
125,126,129].to_seq
|
8
|
+
|
9
|
+
@seq.each do |n|
|
10
|
+
it "should return true for evil number #{n}" do
|
11
|
+
n.should be_evil
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
@seq.invert.each do |n|
|
16
|
+
it "should return false for non-evil number #{n}" do
|
17
|
+
n.should_not be_evil
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/spec/factorial_spec.rb
CHANGED
@@ -12,3 +12,24 @@ describe Integer, "#factorial" do
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
15
|
+
|
16
|
+
describe Integer, "#factorial?" do
|
17
|
+
# A000142
|
18
|
+
@seq = [1,1,2,6,24,120,720,5040,40320,362880,3628800,
|
19
|
+
39916800,479001600,6227020800,87178291200,
|
20
|
+
1307674368000,20922789888000,355687428096000,
|
21
|
+
6402373705728000,121645100408832000,
|
22
|
+
2432902008176640000]
|
23
|
+
|
24
|
+
@seq.first(10).each do |n|
|
25
|
+
it "should return true for factorial #{n}" do
|
26
|
+
n.should be_factorial
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
@seq.first(10).to_seq.invert.sample(10).each do |n|
|
31
|
+
it "should return false for non-factorial #{n}" do
|
32
|
+
n.should_not be_factorial
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/spec/odious_spec.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
describe Integer, "#odious?" do
|
2
|
+
@seq = [1,2,4,7,8,11,13,14,16,19,21,22,25,26,28,31,32,35,
|
3
|
+
37,38,41,42,44,47,49,50,52,55,56,59,61,62,64,67,
|
4
|
+
69,70,73,74,76,79,81,82,84,87,88,91,93,94,97,98,
|
5
|
+
100,103,104,107,109,110,112,115,117,118,121,122,
|
6
|
+
124,127,128].to_seq
|
7
|
+
|
8
|
+
@seq.each do |n|
|
9
|
+
it "returns true for odious number #{n}" do
|
10
|
+
n.should be_odious
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
@seq.invert.each do |n|
|
15
|
+
it "returns false for non-odious number #{n}" do
|
16
|
+
n.should_not be_odious
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
describe Integer, "#sociable?" do
|
2
|
+
# A090615
|
3
|
+
@seq = {
|
4
|
+
4 => [1264460,2115324,2784580,4938136,7169104,18048976,
|
5
|
+
18656380,28158165,46722700,81128632,174277820,
|
6
|
+
209524210,330003580,498215416,1236402232,
|
7
|
+
1799281330,2387776550,2717495235,2879697304,
|
8
|
+
3705771825,4424606020],
|
9
|
+
5 => [12496],
|
10
|
+
# A119478
|
11
|
+
6 => [21548919483,90632826380,1771417411016,
|
12
|
+
3524434872392,4773123705616],
|
13
|
+
8 => [1095447416, 1276254780],
|
14
|
+
9 => [805984760],
|
15
|
+
28 =>[14316],
|
16
|
+
}
|
17
|
+
|
18
|
+
# A000396
|
19
|
+
@perfect = [6,28,496,8128,33550336,8589869056,137438691328,
|
20
|
+
2305843008139952128,
|
21
|
+
2658455991569831744654692615953842176,
|
22
|
+
191561942608236107294793378084303638130997321548169216].first(4)
|
23
|
+
|
24
|
+
@perfect.sample(2).each do |n|
|
25
|
+
it "should return false for 1-sociable (perfect) number #{n}" do
|
26
|
+
n.sociable?(1).should be_false
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# A063990
|
31
|
+
@amicable = [220,284,1184,1210,2620,2924,5020,5564,6232,6368,
|
32
|
+
10744,10856,12285,14595,17296,18416,63020,66928,
|
33
|
+
66992,67095,69615,71145,76084,79750,87633,88730,
|
34
|
+
100485,122265,122368,123152,124155,139815,141664,
|
35
|
+
142310]
|
36
|
+
|
37
|
+
@amicable.sample(2).each do |n|
|
38
|
+
it "should return false for 2-sociable (amicable) number #{n}" do
|
39
|
+
n.sociable?(2).should be_false
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
@seq.each do |t, members|
|
44
|
+
next if t >= 6 # Too slow :-(
|
45
|
+
members.sample(2).each do |n|
|
46
|
+
it "should return true for #{t}-sociable number #{n}" do
|
47
|
+
n.sociable?(t).should be_true
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
members.to_seq.invert.sample(2).each do |n|
|
52
|
+
it "should return false for non-#{t}-sociable number #{n}" do
|
53
|
+
n.sociable?(t).should be_false
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -10,7 +10,10 @@ class Seq
|
|
10
10
|
include Enumerable
|
11
11
|
attr_accessor :exclude, :include
|
12
12
|
def initialize(*args)
|
13
|
-
@include = args
|
13
|
+
@include = args
|
14
|
+
if @include.size == 1 and @include.first.is_a?(Enumerable)
|
15
|
+
@include = @include.first
|
16
|
+
end
|
14
17
|
@exclude = []
|
15
18
|
end
|
16
19
|
|
@@ -22,6 +25,7 @@ class Seq
|
|
22
25
|
end
|
23
26
|
|
24
27
|
def invert
|
28
|
+
return [] if @include.size < 2
|
25
29
|
Seq.new(self.begin..self.end).tap{|s| s.exclude = @include }
|
26
30
|
end
|
27
31
|
|
@@ -0,0 +1,14 @@
|
|
1
|
+
describe Integer, "#sum_of_unitary_divisors" do
|
2
|
+
# A034448
|
3
|
+
@seq = [1,3,4,5,6,12,8,9,10,18,12,20,14,24,24,17,18,30,
|
4
|
+
20,30,32,36,24,36,26,42,28,40,30,72,32,33,48,54,
|
5
|
+
48,50,38,60,56,54,42,96,44,60,60,72,48,68,50,78,
|
6
|
+
72,70,54,84,72,72,80,90,60,120,62,96,80,65,84,144,
|
7
|
+
68,90,96,144]
|
8
|
+
|
9
|
+
@seq.to_enum.with_index(1).each do |sum, n|
|
10
|
+
it "should return #{sum} for #{n}" do
|
11
|
+
n.sum_of_unitary_divisors.should == sum
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
describe Integer, "#twin_prime?" do
|
2
|
+
# A001359, A006512
|
3
|
+
@seq = [3,5,11,17,29,41,59,71,101,107,137,149,179,191,
|
4
|
+
197,227,239,269,281,311,347,419,431,461,521,569,
|
5
|
+
599,617,641,659,809,821,827,857,881,1019,1031,
|
6
|
+
1049,1061,1091,1151,1229,1277,1289,1301,1319,1427,
|
7
|
+
1451,1481,1487,1607].zip(
|
8
|
+
[5,7,13,19,31,43,61,73,103,109,139,151,181,193,
|
9
|
+
199,229,241,271,283,313,349,421,433,463,523,571,
|
10
|
+
601,619,643,661,811,823,829,859,883,1021,1033,
|
11
|
+
1051,1063,1093,1153,1231,1279,1291,1303,1321,1429,
|
12
|
+
1453,1483,1489,1609])
|
13
|
+
|
14
|
+
@seq.each do |p, q|
|
15
|
+
it "should return true for twin-primes #{p} and #{q}" do
|
16
|
+
p.twin_prime?(q).should be_true
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
it "returns false for two primes which are not twin" do
|
21
|
+
2.twin_prime?(29).should be_false
|
22
|
+
end
|
23
|
+
|
24
|
+
it "returns false for a prime and a composite" do
|
25
|
+
17.twin_prime?(20).should be_false
|
26
|
+
end
|
27
|
+
|
28
|
+
it "returns false for two composites with a difference of two" do
|
29
|
+
20.twin_prime?(22).should be_false
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
describe Integer, "#unhappy?" do
|
2
|
+
# A031177
|
3
|
+
@seq = [2,3,4,5,6,8,9,11,12,14,15,16,17,18,20,21,22,24,
|
4
|
+
25,26,27,29,30,33,34,35,36,37,38,39,40,41,42,43,
|
5
|
+
45,46,47,48,50,51,52,53,54,55,56,57,58,59,60,61,
|
6
|
+
62,63,64,65,66,67,69,71,72,73,74,75,76,77,78,80,
|
7
|
+
81,83].to_seq
|
8
|
+
|
9
|
+
@seq.each do |n|
|
10
|
+
it "should return true for unhappy number #{n}" do
|
11
|
+
n.should be_unhappy
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
@seq.invert.each do |n|
|
16
|
+
it "should return false for happy number #{n}" do
|
17
|
+
n.should_not be_unhappy
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
describe Integer, "#unitary_amicable?" do
|
2
|
+
# A002952, A002953
|
3
|
+
@seq = [114,1140,18018,32130,44772,56430,67158,142310,
|
4
|
+
180180,197340,241110,296010,308220,462330,591030,
|
5
|
+
669900,671580,785148,815100,1004850,1077890,
|
6
|
+
1080150,1156870,1177722,1222650,1281540,1475810,
|
7
|
+
1511930,1571388].zip(
|
8
|
+
[126,1260,22302,40446,49308,64530,73962,168730,
|
9
|
+
223020,286500,242730,429750,365700,548550,618570,
|
10
|
+
827700,739620,827652,932100,1241550,1099390,
|
11
|
+
1291050,1292570,1241478,1398150,1621500,1669150,
|
12
|
+
1598470,1654212])
|
13
|
+
|
14
|
+
@seq.each do |m, n|
|
15
|
+
it "should return true for unitary amicable pair (#{m},#{n})" do
|
16
|
+
m.unitary_amicable?(n).should be_true
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should return true for unitary amicable pair (#{n},#{m})" do
|
20
|
+
n.unitary_amicable?(m).should be_true
|
21
|
+
end
|
22
|
+
|
23
|
+
o, p = n+m, @seq.reject{|pair| pair == [n, m]}.sample.last
|
24
|
+
it "should return false for non-unitary amicable pair (#{o},#{p})" do
|
25
|
+
o.unitary_amicable?(p).should_not be_true
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
describe Integer, "#unitary_sociable?" do
|
2
|
+
# A000173
|
3
|
+
@seq = {
|
4
|
+
3 => [30],
|
5
|
+
4 => [263820, 395730, 172459210, 209524210, 384121920, 1799281330,
|
6
|
+
2069510520, 2514290520],
|
7
|
+
5 => [1482],
|
8
|
+
6 => [698130, 341354790, 530946330, 582129630],
|
9
|
+
14 => [2418, 24180, 35238],
|
10
|
+
65 => [473298],
|
11
|
+
25 => [763620],
|
12
|
+
39 => [2212026],
|
13
|
+
26 => [2233554],
|
14
|
+
10 => [525150234, 5251502340],
|
15
|
+
12 => [3344596854]
|
16
|
+
}
|
17
|
+
|
18
|
+
(3..5).map{|_| [_, @seq[_]]}.each do |t, members|
|
19
|
+
members.sample(1).each do |n|
|
20
|
+
it "should return true for #{t}-unitary-sociable number #{n}" do
|
21
|
+
n.unitary_sociable?(t).should be_true
|
22
|
+
end
|
23
|
+
|
24
|
+
m = n - 2
|
25
|
+
it "should return false for non-#{t}-unitary-sociable number #{m}" do
|
26
|
+
m.unitary_sociable?(t).should be_false
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
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.84.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-
|
12
|
+
date: 2010-02-13 00:00:00 +00:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -42,6 +42,7 @@ files:
|
|
42
42
|
- lib/numb/abundancy.rb
|
43
43
|
- lib/numb/abundant.rb
|
44
44
|
- lib/numb/achilles.rb
|
45
|
+
- lib/numb/aliquot_sequence.rb
|
45
46
|
- lib/numb/almost_perfect.rb
|
46
47
|
- lib/numb/almost_prime.rb
|
47
48
|
- lib/numb/amicable.rb
|
@@ -74,6 +75,7 @@ files:
|
|
74
75
|
- lib/numb/economical.rb
|
75
76
|
- lib/numb/emrip.rb
|
76
77
|
- lib/numb/equidigital.rb
|
78
|
+
- lib/numb/evil.rb
|
77
79
|
- lib/numb/extravagant.rb
|
78
80
|
- lib/numb/factorial.rb
|
79
81
|
- lib/numb/factorion.rb
|
@@ -116,6 +118,7 @@ files:
|
|
116
118
|
- lib/numb/nth_prime.rb
|
117
119
|
- lib/numb/number_of_divisors.rb
|
118
120
|
- lib/numb/octagonal.rb
|
121
|
+
- lib/numb/odious.rb
|
119
122
|
- lib/numb/ordinal.rb
|
120
123
|
- lib/numb/ore.rb
|
121
124
|
- lib/numb/parasitic.rb
|
@@ -146,20 +149,26 @@ files:
|
|
146
149
|
- lib/numb/smarandache_wellin.rb
|
147
150
|
- lib/numb/smith.rb
|
148
151
|
- lib/numb/smooth.rb
|
152
|
+
- lib/numb/sociable.rb
|
149
153
|
- lib/numb/sophie_germain_prime.rb
|
150
154
|
- lib/numb/sphenic.rb
|
151
155
|
- lib/numb/square.rb
|
152
156
|
- lib/numb/square_free.rb
|
153
157
|
- lib/numb/sublime.rb
|
154
158
|
- lib/numb/sum_of_squares.rb
|
159
|
+
- lib/numb/sum_of_unitary_divisors.rb
|
155
160
|
- lib/numb/superabundant.rb
|
156
161
|
- lib/numb/superperfect.rb
|
157
162
|
- lib/numb/totient.rb
|
158
163
|
- lib/numb/triangular.rb
|
159
164
|
- lib/numb/trimorphic.rb
|
165
|
+
- lib/numb/twin_prime.rb
|
160
166
|
- lib/numb/undulating.rb
|
167
|
+
- lib/numb/unhappy.rb
|
168
|
+
- lib/numb/unitary_amicable.rb
|
161
169
|
- lib/numb/unitary_divisor.rb
|
162
170
|
- lib/numb/unitary_perfect.rb
|
171
|
+
- lib/numb/unitary_sociable.rb
|
163
172
|
- lib/numb/untouchable.rb
|
164
173
|
- lib/numb/vampire.rb
|
165
174
|
- lib/numb/weird.rb
|
@@ -204,6 +213,7 @@ files:
|
|
204
213
|
- spec/economical_spec.rb
|
205
214
|
- spec/emrip_spec.rb
|
206
215
|
- spec/equidigital_spec.rb
|
216
|
+
- spec/evil_spec.rb
|
207
217
|
- spec/extravagant_spec.rb
|
208
218
|
- spec/factorial_spec.rb
|
209
219
|
- spec/factorion_spec.rb
|
@@ -244,6 +254,7 @@ files:
|
|
244
254
|
- spec/number_of_distinct_prime_factors_spec.rb
|
245
255
|
- spec/number_of_prime_factors_spec.rb
|
246
256
|
- spec/octagonal_spec.rb
|
257
|
+
- spec/odious_spec.rb
|
247
258
|
- spec/ordinal_spec.rb
|
248
259
|
- spec/ore_spec.rb
|
249
260
|
- spec/parasitic_spec.rb
|
@@ -275,6 +286,7 @@ files:
|
|
275
286
|
- spec/smarandache_wellin_spec.rb
|
276
287
|
- spec/smith_spec.rb
|
277
288
|
- spec/smooth_spec.rb
|
289
|
+
- spec/sociable_spec.rb
|
278
290
|
- spec/sophie_germain_prime_spec.rb
|
279
291
|
- spec/spec_helper.rb
|
280
292
|
- spec/sphenic_spec.rb
|
@@ -282,14 +294,19 @@ files:
|
|
282
294
|
- spec/square_spec.rb
|
283
295
|
- spec/sublime_spec.rb
|
284
296
|
- spec/sum_of_squares.rb
|
297
|
+
- spec/sum_of_unitary_divisors_spec.rb
|
285
298
|
- spec/superabundant_spec.rb
|
286
299
|
- spec/superperfect_spec.rb
|
287
300
|
- spec/totient_spec.rb
|
288
301
|
- spec/triangular_spec.rb
|
289
302
|
- spec/trimorphic_spec.rb
|
303
|
+
- spec/twin_prime_spec.rb
|
290
304
|
- spec/undulating_spec.rb
|
305
|
+
- spec/unhappy_spec.rb
|
306
|
+
- spec/unitary_amicable_spec.rb
|
291
307
|
- spec/unitary_divisor_spec.rb
|
292
308
|
- spec/unitary_perfect.rb
|
309
|
+
- spec/unitary_sociable.rb
|
293
310
|
- spec/untouchable_spec.rb
|
294
311
|
- spec/vampire_spec.rb
|
295
312
|
- spec/weird_spec.rb
|
@@ -340,6 +357,7 @@ test_files:
|
|
340
357
|
- spec/equidigital_spec.rb
|
341
358
|
- spec/primorial_spec.rb
|
342
359
|
- spec/superabundant_spec.rb
|
360
|
+
- spec/sociable_spec.rb
|
343
361
|
- spec/nivenmorphic_spec.rb
|
344
362
|
- spec/dudeney_spec.rb
|
345
363
|
- spec/centered_triangular_spec.rb
|
@@ -361,6 +379,7 @@ test_files:
|
|
361
379
|
- spec/woodall_spec.rb
|
362
380
|
- spec/abundancy_spec.rb
|
363
381
|
- spec/polite_spec.rb
|
382
|
+
- spec/unitary_amicable_spec.rb
|
364
383
|
- spec/zerofree_spec.rb
|
365
384
|
- spec/automorphic_spec.rb
|
366
385
|
- spec/minimal_spec.rb
|
@@ -370,6 +389,7 @@ test_files:
|
|
370
389
|
- spec/zeisel_spec.rb
|
371
390
|
- spec/smooth_spec.rb
|
372
391
|
- spec/d_spec.rb
|
392
|
+
- spec/unitary_sociable.rb
|
373
393
|
- spec/spec_helper.rb
|
374
394
|
- spec/heptagonal_spec.rb
|
375
395
|
- spec/kynea_spec.rb
|
@@ -391,6 +411,7 @@ test_files:
|
|
391
411
|
- spec/breeder_spec.rb
|
392
412
|
- spec/sphenic_spec.rb
|
393
413
|
- spec/idoneal_spec.rb
|
414
|
+
- spec/sum_of_unitary_divisors_spec.rb
|
394
415
|
- spec/lucas_carmichael_spec.rb
|
395
416
|
- spec/rhonda_spec.rb
|
396
417
|
- spec/totient_spec.rb
|
@@ -406,11 +427,13 @@ test_files:
|
|
406
427
|
- spec/highly_composite_spec.rb
|
407
428
|
- spec/frugal_spec.rb
|
408
429
|
- spec/divides_spec.rb
|
430
|
+
- spec/odious_spec.rb
|
409
431
|
- spec/semiprime_spec.rb
|
410
432
|
- spec/deficient_spec.rb
|
411
433
|
- spec/almost_perfect_spec.rb
|
412
434
|
- spec/amicable_spec.rb
|
413
435
|
- spec/happy_spec.rb
|
436
|
+
- spec/twin_prime_spec.rb
|
414
437
|
- spec/hexagonal_spec.rb
|
415
438
|
- spec/wieferich_prime_spec.rb
|
416
439
|
- spec/fibonacci_spec.rb
|
@@ -423,6 +446,7 @@ test_files:
|
|
423
446
|
- spec/core_spec.rb
|
424
447
|
- spec/lucas_spec.rb
|
425
448
|
- spec/trimorphic_spec.rb
|
449
|
+
- spec/evil_spec.rb
|
426
450
|
- spec/harshad_spec.rb
|
427
451
|
- spec/cube_spec.rb
|
428
452
|
- spec/ore_spec.rb
|
@@ -456,3 +480,4 @@ test_files:
|
|
456
480
|
- spec/aspiring_spec.rb
|
457
481
|
- spec/mobius_spec.rb
|
458
482
|
- spec/positive_spec.rb
|
483
|
+
- spec/unhappy_spec.rb
|