Commit 454a829

mo khan <mo@mokhan.ca>
2015-02-12 05:17:41
brute force problem five.
1 parent 2871742
Changed files (1)
spec/euler/problem_five_spec.rb
@@ -0,0 +1,38 @@
+#2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.
+
+#What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20?
+describe "problem five" do
+  def divisible_by?(number)
+    return number % 2 == 0 &&
+      number % 3 == 0 &&
+      number % 4 == 0 &&
+      number % 5 == 0 &&
+      number % 6 == 0 &&
+      number % 7 == 0 &&
+      number % 8 == 0 &&
+      number % 9 == 0 &&
+      number % 10 == 0 &&
+      number % 11 == 0 &&
+      number % 12 == 0 &&
+      number % 13 == 0 &&
+      number % 14 == 0 &&
+      number % 15 == 0 &&
+      number % 16 == 0 &&
+      number % 17 == 0 &&
+      number % 18 == 0 &&
+      number % 19 == 0 &&
+      number % 20 == 0
+  end
+
+  def smallest
+    n = 20
+    loop do
+      return n if divisible_by?(n)
+      n = n + 20
+    end
+  end
+
+  it 'produces the answer' do
+    expect(smallest).to eql(232792560)
+  end
+end