numb 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.0
1
+ 0.5.0
@@ -0,0 +1,5 @@
1
+ class Integer
2
+ def composite?
3
+ self > 1 and not prime?
4
+ end
5
+ end
@@ -0,0 +1,8 @@
1
+ class Integer
2
+ def lucas_carmichael?
3
+ return false unless composite? and odd? and square_free?
4
+ prime_factors.all? do |prime_factor|
5
+ succ.factor?(prime_factor + 1)
6
+ end
7
+ end
8
+ end
data/lib/numb.rb CHANGED
@@ -1,12 +1,13 @@
1
1
  # coding: utf-8
2
2
 
3
- libs = %w{abundant achilles automorphic carol deficient dihedral_prime dudeney
4
- economical emrip equidigital extravagant factorion frugal happy
5
- harshad hilbert hyperperfect impolite kaprekar keith kynea mms_pair mobius
6
- narcissistic nivenmorphic ordinal parasitic perfect perfect_power polite
7
- polydivisible powerful practical pronic self self_descriptive semi_perfect
8
- semiprime smarandache_wellin smith sphenic square square_free triangular
9
- trimorphic undulating vampire weird
3
+ libs = %w{abundant achilles automorphic carol composite deficient
4
+ dihedral_prime dudeney economical emrip equidigital
5
+ extravagant factorion frugal happy harshad hilbert hyperperfect
6
+ impolite kaprekar keith kynea lucas_carmichael mms_pair mobius
7
+ narcissistic nivenmorphic ordinal parasitic perfect perfect_power
8
+ polite polydivisible powerful practical pronic self self_descriptive
9
+ semi_perfect semiprime smarandache_wellin smith sphenic square
10
+ square_free triangular trimorphic undulating vampire weird
10
11
  }
11
12
 
12
13
  class Integer
@@ -0,0 +1,22 @@
1
+ describe Integer, "#composite?" do
2
+ COMPOSITE = [4,6,8,9,10,12,14,15,16,18,20,21,22,24,25,26,27,
3
+ 28,30,32,33,34,35,36,38,39,40,42,44,45,46,48,49,
4
+ 50,51,52,54,55,56,57,58,60,62,63,64,65,66,68,69,
5
+ 70,72,74,75,76,77,78,80,81,82,84,85,86,87,88]
6
+
7
+ it "returns true for composite numbers" do
8
+ COMPOSITE.each{|n| n.should be_composite}
9
+ end
10
+
11
+ it "returns false for non-composite numbers" do
12
+ ((0..88).to_a - COMPOSITE).each{|n| n.should_not be_composite}
13
+ end
14
+
15
+ it "returns false for 1" do
16
+ 1.should_not be_composite
17
+ end
18
+
19
+ it "returns false for primes" do
20
+ Prime.first(300).each{|n| n.should_not be_composite}
21
+ end
22
+ end
@@ -0,0 +1,14 @@
1
+ describe Integer, "#lucas_carmichael?" do
2
+ LC = [399, 935, 2015, 2915, 4991, 5719, 7055, 8855, 12719, 18095,
3
+ 20705, 20999, 22847, 29315, 31535, 46079, 51359, 60059,
4
+ 63503, 67199, 73535, 76751, 80189, 81719, 88559, 90287,
5
+ 104663, 117215, 120581, 147455, 152279, 155819, 162687, 191807]
6
+
7
+ it "returns true for Lucas-Carmichael numbers" do
8
+ LC.each {|n| n.should be_lucas_carmichael}
9
+ end
10
+
11
+ it "returns fals for non-Lucas-Carmichael numbers" do
12
+ [23, 398, 672, 90288, 72621].each {|n| n.should_not be_lucas_carmichael}
13
+ end
14
+ 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.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Run Paint Run Run
@@ -43,6 +43,7 @@ files:
43
43
  - lib/numb/achilles.rb
44
44
  - lib/numb/automorphic.rb
45
45
  - lib/numb/carol.rb
46
+ - lib/numb/composite.rb
46
47
  - lib/numb/deficient.rb
47
48
  - lib/numb/dihedral_prime.rb
48
49
  - lib/numb/dudeney.rb
@@ -60,6 +61,7 @@ files:
60
61
  - lib/numb/kaprekar.rb
61
62
  - lib/numb/keith.rb
62
63
  - lib/numb/kynea.rb
64
+ - lib/numb/lucas_carmichael.rb
63
65
  - lib/numb/mms_pair.rb
64
66
  - lib/numb/mobius.rb
65
67
  - lib/numb/narcissistic.rb
@@ -94,6 +96,7 @@ files:
94
96
  - spec/achilles_spec.rb
95
97
  - spec/automorphic_spec.rb
96
98
  - spec/carol_spec.rb
99
+ - spec/composite_spec.rb
97
100
  - spec/deficient_spec.rb
98
101
  - spec/digital_sum_spec.rb
99
102
  - spec/dihedral_prime_spec.rb
@@ -112,6 +115,7 @@ files:
112
115
  - spec/kaprekar_spec.rb
113
116
  - spec/keith_spec.rb
114
117
  - spec/kynea_spec.rb
118
+ - spec/lucas_carmichael_spec.rb
115
119
  - spec/maris_mcgwire_sosa_pair_spec.rb
116
120
  - spec/mobius_spec.rb
117
121
  - spec/narcissistic_spec.rb
@@ -196,6 +200,8 @@ test_files:
196
200
  - spec/vampire_spec.rb
197
201
  - spec/dihedral_prime_spec.rb
198
202
  - spec/sphenic_spec.rb
203
+ - spec/lucas_carmichael_spec.rb
204
+ - spec/composite_spec.rb
199
205
  - spec/practical_spec.rb
200
206
  - spec/parasitic_spec.rb
201
207
  - spec/number_of_prime_factors_spec.rb