numb 0.77.0 → 0.84.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/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
|