From 224626fb06e984ae79bf739c3339c3da40a9f3b5 Mon Sep 17 00:00:00 2001 From: Peter Brown Date: Mon, 28 Apr 2014 23:24:46 -0700 Subject: [PATCH 1/4] make if prime method --- problem03.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/problem03.rb b/problem03.rb index e69de29..919f8dc 100644 --- a/problem03.rb +++ b/problem03.rb @@ -0,0 +1,5 @@ +def prime? n + (2..(n-1)).each { |x| return false if n % x == 0 } + true +end + From 5ae419c396d9c9ea9eada814c4ce9095fca82a65 Mon Sep 17 00:00:00 2001 From: Peter Brown Date: Mon, 28 Apr 2014 23:58:11 -0700 Subject: [PATCH 2/4] updated Readme --- README.md | 36 ++++++++++++++++++++++++++++++++++++ problem03.rb | 25 ++++++++++++++++++++++++- 2 files changed, 60 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4b4187d..eea5d71 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,38 @@ DevPreWork01 ============ +== Readme + +Problem #3 +

The prime factors of 13195 are 5, 7, 13 and 29. + +What is the largest prime factor of the number 600851475143 ?

+Problem #5 Smallest numebr +

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?

+ +Problem #8 largest product in a series + +

Find the greatest product of five consecutive digits in the 1000-digit number. + +73167176531330624919225119674426574742355349194934 +96983520312774506326239578318016984801869478851843 +85861560789112949495459501737958331952853208805511 +12540698747158523863050715693290963295227443043557 +66896648950445244523161731856403098711121722383113 +62229893423380308135336276614282806444486645238749 +30358907296290491560440772390713810515859307960866 +70172427121883998797908792274921901699720888093776 +65727333001053367881220235421809751254540594752243 +52584907711670556013604839586446706324415722155397 +53697817977846174064955149290862569321978468622482 +83972241375657056057490261407972968652414535100474 +82166370484403199890008895243450658541227588666881 +16427171479924442928230863465674813919123162824586 +17866458359124566529476545682848912883142607690042 +24219022671055626321111109370544217506941658960408 +07198403850962455444362981230987879927244284909188 +84580156166097919133875499200524063689912560717606 +05886116467109405077541002256983155200055935729725 +71636269561882670428252483600823257530420752963450

+ diff --git a/problem03.rb b/problem03.rb index 919f8dc..1bf07a3 100644 --- a/problem03.rb +++ b/problem03.rb @@ -1,5 +1,28 @@ -def prime? n + + + +#make method to check to see if number is prime + +def prime?(n) (2..(n-1)).each { |x| return false if n % x == 0 } true end +n = 600_851_475_143 +array = [] +product_sum = 1 +x = 2 # 2 is the first prime number + +#make loop that checks to see what the prime numbers and shovels them into an empty array +while product_sum < n + if n % x == 0 && prime?(x) + array << x + product_sum *= x + end + x += 1 +end + +#array of prime numbers +array.inspect +#grab the last number in array +array.sort.last \ No newline at end of file From eabbab4206967c0e244bdb361da0d5dde9d10a06 Mon Sep 17 00:00:00 2001 From: Peter Brown Date: Tue, 29 Apr 2014 17:21:46 -0700 Subject: [PATCH 3/4] problem04 works, refactor and comment --- README.md | 7 ++++--- problem03.rb | 8 ++++---- problem04.rb | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 7 deletions(-) create mode 100644 problem04.rb diff --git a/README.md b/README.md index eea5d71..2e19af8 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ +== README DevPreWork01 ============ -== Readme + Problem #3

The prime factors of 13195 are 5, 7, 13 and 29. @@ -13,9 +14,9 @@ What is the smallest positive number that is evenly divisible by all of the numb Problem #8 largest product in a series -

Find the greatest product of five consecutive digits in the 1000-digit number. +

Find the greatest product of five consecutive digits in the 1000-digit number.

-73167176531330624919225119674426574742355349194934 +

73167176531330624919225119674426574742355349194934 96983520312774506326239578318016984801869478851843 85861560789112949495459501737958331952853208805511 12540698747158523863050715693290963295227443043557 diff --git a/problem03.rb b/problem03.rb index 1bf07a3..a9b9e1a 100644 --- a/problem03.rb +++ b/problem03.rb @@ -10,14 +10,14 @@ def prime?(n) n = 600_851_475_143 array = [] -product_sum = 1 -x = 2 # 2 is the first prime number +limit = 1 +x = 2 #make loop that checks to see what the prime numbers and shovels them into an empty array -while product_sum < n +while limit < n if n % x == 0 && prime?(x) array << x - product_sum *= x + limit *= x end x += 1 end diff --git a/problem04.rb b/problem04.rb new file mode 100644 index 0000000..e83c98c --- /dev/null +++ b/problem04.rb @@ -0,0 +1,37 @@ +#A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 * 99. +#Find the largest palindrome made from the product of two 3-digit numbers. + +#make a method to check if the number is a palindrome + +def palindrome?(n) + # convert n to a string + x = n.to_s + # get the length and divide by 2 + y = x.length/2 + # check to see if both sides equal + x[0..(y-1)] == x[-y..-1].reverse +end + + +def product_of_nums(n) + a = [] + msum = 0 + + 999.downto(100) do |i| + 999.downto(100) do |j| + sum = i * j + if (sum > msum); + if (palindrome?(sum)); + msum = sum + a << sum + break + end + end + end + end + return a.inspect; +end + +puts "answer: #{product_of_nums(3)}" + + From 4aec98f8b3ab30040ed9d06e599b1ddf52ae758d Mon Sep 17 00:00:00 2001 From: Peter Brown Date: Tue, 6 May 2014 07:20:10 -0700 Subject: [PATCH 4/4] problems 1-4, work on 5 and look at solution for 8 --- README.md | 3 ++- problem01.rb | 13 +++++++++++++ problem03.rb | 2 +- problem04.rb | 6 +++--- problem05.rb | 13 +++++++++++++ 5 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 problem01.rb diff --git a/README.md b/README.md index 2e19af8..c5283d9 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -== README + DevPreWork01 ============ @@ -7,6 +7,7 @@ Problem #3

The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 600851475143 ?

+ Problem #5 Smallest numebr

2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder. diff --git a/problem01.rb b/problem01.rb new file mode 100644 index 0000000..729fa1a --- /dev/null +++ b/problem01.rb @@ -0,0 +1,13 @@ +#if we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. +#Find the sum of all the multiples of 3 or 5 below 1000. + +counter = [] + +(1..9).each do |x| + counter << x if (x%3 == 0 || x%5==0) + counter.inspect +end + +counter.inject { |sum, n| sum+n } +#or +#counter.reduce(:+) \ No newline at end of file diff --git a/problem03.rb b/problem03.rb index a9b9e1a..904ccf8 100644 --- a/problem03.rb +++ b/problem03.rb @@ -8,7 +8,7 @@ def prime?(n) true end -n = 600_851_475_143 +n =63 array = [] limit = 1 x = 2 diff --git a/problem04.rb b/problem04.rb index e83c98c..56d0dfc 100644 --- a/problem04.rb +++ b/problem04.rb @@ -15,14 +15,14 @@ def palindrome?(n) def product_of_nums(n) a = [] - msum = 0 + max_sum = 0 999.downto(100) do |i| 999.downto(100) do |j| sum = i * j - if (sum > msum); + if (sum > max_sum); if (palindrome?(sum)); - msum = sum + max_sum = sum a << sum break end diff --git a/problem05.rb b/problem05.rb index e69de29..3992e3c 100644 --- a/problem05.rb +++ b/problem05.rb @@ -0,0 +1,13 @@ +#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? + +# Ruby docs least common multiple lcm + +num=(1..20).to_a +puts num.inject{ |x,n| x.lcm(n) } + +#find prime factors +def prime?(n) + (2..(n-1)).each {|x| return false if n % x == 0} + return true +end \ No newline at end of file