Done puzzle 64
[project-euler.git] / euler35.rb
index ebe845009339585d798af3186c3c5414d3c2c02d..a25edfe507f92c359c28d4f8ffd192ec2be6d26b 100644 (file)
@@ -1,14 +1,15 @@
 require 'ruby-prof'
 load 'primes.rb'
+load 'array-numbers.rb'
 
 class Array
-  def to_i
-    self.map {|d| d.to_s}.join.to_i
-  end
+  def to_i
+    self.map {|d| d.to_s}.join.to_i
+  end
   
-  def to_r
-    Rational(self[0].to_i, self[1].to_i)
-  end
+  def to_r
+    Rational(self[0].to_i, self[1].to_i)
+  end
 
   def all_rotations
     (0...self.length).map {|r| self.rotate(r)}
@@ -16,30 +17,32 @@ class Array
 end
 
 class Integer
-  @@primes = Primes.instance
+  @@primes = Primes.instance
 
-  def prime?
-    @@primes.include? self
-  end
+  def prime?
+    @@primes.include? self
+  end
   
   def pl
     @@primes.primes.length
   end
   
   def circular_prime?
-    self.to_digits.all_rotations.map {|n| n.to_i}.all? {|n| n.prime?} if self.prime?
+    self.prime? && self.to_digits.all_rotations.map {|n| n.to_i}.all? {|n| n.prime?}
   end
 
-  def to_digits
-    self.to_s.split('').map {|d| d.to_i}
-  end
+  def to_digits
+    self.to_s.split('').map {|d| d.to_i}
+  end
 end 
 
 
-(10**6).prime?
 
 RubyProf.start
 
+# (10**6).prime?
+
+
 pl0 = 0.pl
 beginning_time = Time.now
 cps = (2..10**6).select {|n| n.circular_prime?}