diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/.DS_Store differ diff --git a/README.md b/README.md index 4b4187d..604533d 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ -DevPreWork01 +#DevPreWork01 ============ + +My prework for the [Startup Institute](www.startupinstitute.com). \ No newline at end of file diff --git a/pe1.rb b/pe1.rb new file mode 100644 index 0000000..1553e50 --- /dev/null +++ b/pe1.rb @@ -0,0 +1,8 @@ +total = 0 +(1...1000).each do |num| + if num%3 == 0 || num%5 == 0 + total += num + end +end + +puts total \ No newline at end of file diff --git a/pe10.rb b/pe10.rb new file mode 100644 index 0000000..350ea9b --- /dev/null +++ b/pe10.rb @@ -0,0 +1,23 @@ +#THIS IS SLOW. ~5 MIN => Need to make more efficient + +require 'Prime' +continue = true + + +while continue + prime_array = Array.new + sum = 0 + + Prime.each(2_000_000) do |prime| + puts prime + sum += prime + end + + puts sum + + puts "Continue? " + go = gets.chomp + if go != 't' + continue = false + end +end diff --git a/pe2.rb b/pe2.rb new file mode 100644 index 0000000..474949d --- /dev/null +++ b/pe2.rb @@ -0,0 +1,19 @@ +a = 0 +b = 1 +total = 0 + +fibs = [1,2] + +while (fibs[a] + fibs[b]) < 4000000 + fibs << (fibs[a] + fibs[b]) + a += 1 + b += 1 +end + +fibs.each do |num| + if num%2 == 0 + total += num + end +end + +puts total \ No newline at end of file diff --git a/pe3.rb b/pe3.rb new file mode 100644 index 0000000..6d0f997 --- /dev/null +++ b/pe3.rb @@ -0,0 +1,26 @@ +require 'Prime' + + + +continue = true + +while continue + max_num = 600851475143 + primefact_array = Array.new + + Prime.each(Math.sqrt(max_num)) do |prime| + if max_num%prime == 0 + primefact_array << prime + end + end + + puts primefact_array.last + + puts 'Continue?' + go = gets.chomp + if go != 't' + continue = false + end +end + + diff --git a/pe4.rb b/pe4.rb new file mode 100644 index 0000000..cda31a7 --- /dev/null +++ b/pe4.rb @@ -0,0 +1,24 @@ +start_num = 999 +end_num = 1 +product_array = Array.new +continue = true + +while continue + start_num.downto(end_num) do |num1| + start_num.downto(end_num) do |num2| + product = num1*num2 + if product.to_s == product.to_s.reverse + product_array << (num1*num2) + end + end + end + + puts product_array.max + + puts "Continue?" + go = gets.chomp + + if go != 't' + continue = false + end +end diff --git a/pe5.rb b/pe5.rb new file mode 100644 index 0000000..30993c3 --- /dev/null +++ b/pe5.rb @@ -0,0 +1,13 @@ +continue = true + +while continue + puts (1..20).inject(:lcm) + + puts "\nContinue?" + go = gets.chomp + if go != 't' + continue = false + end +end + + diff --git a/pe6.rb b/pe6.rb new file mode 100644 index 0000000..a0b9f7d --- /dev/null +++ b/pe6.rb @@ -0,0 +1,20 @@ +def sum_square + total = 0 + (1..100).each do |num| + square = num **2 + total += square + end + return total +end + +def square_sum + sum = 0 + (1..100).each do |num| + sum += num + end + return sum **2 +end + +difference = (square_sum)- (sum_square) + +puts difference diff --git a/pe7.rb b/pe7.rb new file mode 100644 index 0000000..8aa066f --- /dev/null +++ b/pe7.rb @@ -0,0 +1,16 @@ +require 'Prime' + + +continue = true + +while continue + prime_array = Prime.first 10_001 + puts prime_array.last + puts "Keep going? " + go = gets.chomp + if go != 't' + continue = false + end +end + + diff --git a/pe8.rb b/pe8.rb new file mode 100644 index 0000000..9db11e0 --- /dev/null +++ b/pe8.rb @@ -0,0 +1,53 @@ +num = '73167176531330624919225119674426574742355349194934 + 96983520312774506326239578318016984801869478851843 + 85861560789112949495459501737958331952853208805511 + 12540698747158523863050715693290963295227443043557 + 66896648950445244523161731856403098711121722383113 + 62229893423380308135336276614282806444486645238749 + 30358907296290491560440772390713810515859307960866 + 70172427121883998797908792274921901699720888093776 + 65727333001053367881220235421809751254540594752243 + 52584907711670556013604839586446706324415722155397 + 53697817977846174064955149290862569321978468622482 + 83972241375657056057490261407972968652414535100474 + 82166370484403199890008895243450658541227588666881 + 16427171479924442928230863465674813919123162824586 + 17866458359124566529476545682848912883142607690042 + 24219022671055626321111109370544217506941658960408 + 07198403850962455444362981230987879927244284909188 + 84580156166097919133875499200524063689912560717606 + 05886116467109405077541002256983155200055935729725 + 71636269561882670428252483600823257530420752963450' + + +place = 0 +digits = 5 +continue = true + +product_array = Array.new + +def product (n) + total_product = 1 + n.each_char do |char| + char = char.to_i + total_product *= char + end + return total_product +end + + +while continue + while place <= 995 + string = num[place, digits] + product = product(string) + product_array << product + place += 1 + end + + puts product_array.max + puts "Continue? " + go = gets.chomp + if go != 't' + continue = false + end +end \ No newline at end of file diff --git a/pe9.rb b/pe9.rb new file mode 100644 index 0000000..2bd9f48 --- /dev/null +++ b/pe9.rb @@ -0,0 +1,11 @@ +## This algorithm uses an algebraic manipulation of Euclid's equations + +(2..30).each do |m| + (1...m).each do |n| + a = (m**2 - n**2) + b = 2*m*n + c = (m**2 + n**2) + + puts a*b*c if a+b+c==1000 + end +end \ No newline at end of file diff --git a/problem03.rb b/problem03.rb deleted file mode 100644 index e69de29..0000000 diff --git a/problem05.rb b/problem05.rb deleted file mode 100644 index e69de29..0000000 diff --git a/problem08.rb b/problem08.rb deleted file mode 100644 index e69de29..0000000