From 16cb93bb77901ad556763e6a1c01c1eb2c1b829e Mon Sep 17 00:00:00 2001 From: honor Date: Tue, 22 Oct 2013 21:49:24 -0400 Subject: [PATCH 1/2] readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4b4187d..22e9bc4 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ DevPreWork01 ============ +Here are some problems I solve for Startup Institute NY prework (Web Dev track). From d0bfe0103c35077a5b370bc8710b9562e71cfc8a Mon Sep 17 00:00:00 2001 From: honor Date: Wed, 23 Oct 2013 21:09:25 -0400 Subject: [PATCH 2/2] problems 3, 5, 8 --- problem03.rb | 19 ++++++++++++++++++ problem05.rb | 50 +++++++++++++++++++++++++++++++++++++++++++++ problem08.rb | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 126 insertions(+) diff --git a/problem03.rb b/problem03.rb index e69de29..fb11b28 100644 --- a/problem03.rb +++ b/problem03.rb @@ -0,0 +1,19 @@ +require 'prime' + +def largest_prime(num) + # generate array of prime divisors + array = [] + array = Prime.prime_division(num) + largest = 1 + # look for the largest one + array.each do |entry| + if entry[0] >= largest + largest = entry[0] + end + end + + largest +end + +# puts largest_prime(13195) +# puts largest_prime(600851475143) \ No newline at end of file diff --git a/problem05.rb b/problem05.rb index e69de29..7edffa0 100644 --- a/problem05.rb +++ b/problem05.rb @@ -0,0 +1,50 @@ +require 'prime' + +# helper function +def comp(a,b) + a[1] = b[1] if a[1] < b[1] +end + +# main function +def smallest_multiple(a,b) + + @arr = [] + total = 1 + + # helper that removes repeats + def help(i) + + if @arr == [] + @arr << i + else + foundIt=0 + + @arr.each do |x| + if x[0] == i[0] + comp(x,i) + foundIt=1 + break + end + end + + @arr << i if foundIt==0 + end + + end + + # for each number in the range... + (a..b).each do |num| + temp = [] + temp = Prime.prime_division(num) + + temp.each do |i| + help(i) + end + end + + # multiply all elements of array back into a total + total = Prime.int_from_prime_division(@arr) + total +end + +# puts smallest_multiple(1,20) \ No newline at end of file diff --git a/problem08.rb b/problem08.rb index e69de29..4968df9 100644 --- a/problem08.rb +++ b/problem08.rb @@ -0,0 +1,57 @@ + +def big_product(arr) + product = 1 + #iterate over the array + + + arr.each do |num| + i = arr.index(num) + + while (i <= (arr.length - 5)) do + subproduct = 1 + subproduct = num * arr[i+1] * arr[i+2] * arr[i+3] * arr[i+4] + + if (subproduct >= product) + product = subproduct + end + + i+=1 + + end + + + end + + product + +end + +my_string = +"73167176531330624919225119674426574742355349194934 +96983520312774506326239578318016984801869478851843 +85861560789112949495459501737958331952853208805511 +12540698747158523863050715693290963295227443043557 +66896648950445244523161731856403098711121722383113 +62229893423380308135336276614282806444486645238749 +30358907296290491560440772390713810515859307960866 +70172427121883998797908792274921901699720888093776 +65727333001053367881220235421809751254540594752243 +52584907711670556013604839586446706324415722155397 +53697817977846174064955149290862569321978468622482 +83972241375657056057490261407972968652414535100474 +82166370484403199890008895243450658541227588666881 +16427171479924442928230863465674813919123162824586 +17866458359124566529476545682848912883142607690042 +24219022671055626321111109370544217506941658960408 +07198403850962455444362981230987879927244284909188 +84580156166097919133875499200524063689912560717606 +05886116467109405077541002256983155200055935729725 +71636269561882670428252483600823257530420752963450" + +my_string.gsub!(/(\n|\t|\r)/, ' ').gsub!(/(\s)/,"") + +my_array = my_string.chars.to_a.map {|num| num.to_i} + + +# puts my_array[0].class +# puts ( big_product(my_array) )