From 38320624a508fa647272235982cf804c07fee04a Mon Sep 17 00:00:00 2001
From: Phillip Marfoglio <dcphillip@gmail.com>
Date: Fri, 28 Feb 2014 00:35:41 -0600
Subject: [PATCH] PreWork

---
 problem03.rb | 19 +++++++++++++++++++
 problem05.rb | 30 ++++++++++++++++++++++++++++++
 problem08.rb | 18 ++++++++++++++++++
 3 files changed, 67 insertions(+)

diff --git a/problem03.rb b/problem03.rb
index e69de29..7db0421 100644
--- a/problem03.rb
+++ b/problem03.rb
@@ -0,0 +1,19 @@
+def prime? n
+  (2..(n-1)).each { |x| return false if n % x == 0 }
+  true
+end
+
+n = 600_851_475_143
+a = []
+product_sum = 1
+x = 2
+
+while product_sum < n
+  if n % x == 0 && prime?(x)
+    a << x
+    product_sum *= x
+  end
+  x += 1
+end
+
+puts "The answer is #{a.last}"
\ No newline at end of file
diff --git a/problem05.rb b/problem05.rb
index e69de29..784c1b3 100644
--- a/problem05.rb
+++ b/problem05.rb
@@ -0,0 +1,30 @@
+upto = 20
+
+def prime? x 
+  (2..x-1).each { |y| return false if x % y == 0 }
+  true
+end
+
+def increment upto
+  a = 1
+  (1..upto).each { |x| a*= x if prime? x }
+  a
+end
+
+def no_remainder? x, upto
+  (1..upto).each { |y| return false if x % y != 0 }
+  true
+end
+
+increment = increment upto
+x = increment
+try_number = 1
+
+while true
+  if no_remainder? x, upto
+    puts "The smallest number is #{x}"
+    break
+  end
+  try_number += 1
+  x = try_number * increment
+end
\ No newline at end of file
diff --git a/problem08.rb b/problem08.rb
index e69de29..873b408 100644
--- a/problem08.rb
+++ b/problem08.rb
@@ -0,0 +1,18 @@
+n = 7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450
+
+consec = 5
+
+def product integer
+	prod = 1
+	integer.to_s.length.times { |i| prod *= integer.to_s[i].to_i }
+	prod
+end
+
+array_results = []
+(0..n.to_s.length - consec).each do |counter|
+  select = n.to_s[counter..counter + consec - 1]
+  prod = product select
+  array_results << prod
+end
+
+puts "The max product of #{consec} consecutive digits in the integer n is #{array_results.max}."