Skip to content

Instantly share code, notes, and snippets.

View aptinio's full-sized avatar

Aaron Tinio aptinio

  • Angeles City, Philippines
View GitHub Profile
@aptinio
aptinio / euler001.rb
Created November 4, 2009 05:11
Project Euler Problem 1
(1...1000).to_a.select {|n| n.remainder(3) == 0 || n.remainder(5) == 0}.reduce(:+)
@aptinio
aptinio / euler002.rb
Created November 4, 2009 05:35
Project Euler Problem 2
fib = [1, 2]
def fib.next
self[-1] + self[-2]
end
fib << fib.next while fib.next < 4_000_000
fib.select {|f| f.remainder(2) == 0}.reduce(:+)
@aptinio
aptinio / euler003.rb
Created November 4, 2009 05:45
Project Euler Problem 3
require 'mathn'
600851475143.prime_division.last.first
@aptinio
aptinio / euler004.rb
Created November 4, 2009 06:35
Project Euler Problem 4
def palindrome?(integer)
string = integer.to_s
string == string.reverse
end
products = []
999.step(100, -1).to_a.each do |a|
999.step(100, -1).to_a.each do |b|
product = a*b
@aptinio
aptinio / euler007.rb
Created November 4, 2009 10:29
Project Euler Problem 7
require 'mathn'
prime = Prime.new
10_000.times {prime.succ}
prime.succ
@aptinio
aptinio / euler009.rb
Created November 4, 2009 11:07
Project Euler Problem 9
def pythagorean_triple(m, n)
m, n = n, m if m > n
[n**2 - m**2, 2*m*n, n**2 + m**2]
end
infinity = 1.0/0.0
catch :answer_found do
(1..infinity).each do |m|
(m+1..infinity).each do |n|
@aptinio
aptinio / euler005.rb
Created November 4, 2009 07:46
Project Euler Problem 5
(1..20).to_a.reduce :lcm
@aptinio
aptinio / euler006.rb
Created November 4, 2009 08:40
Project Euler Problem 6
(1..100).to_a.reduce(:+)**2 - (1..100).to_a.reduce {|sum_of_squares, n| sum_of_squares + n**2}
@aptinio
aptinio / euler008.rb
Created November 4, 2009 11:01
Project Euler Problem 8
numbers = <<EOS
73167176531330624919225119674426574742355349194934
96983520312774506326239578318016984801869478851843
85861560789112949495459501737958331952853208805511
12540698747158523863050715693290963295227443043557
66896648950445244523161731856403098711121722383113
62229893423380308135336276614282806444486645238749
30358907296290491560440772390713810515859307960866
70172427121883998797908792274921901699720888093776
65727333001053367881220235421809751254540594752243
@aptinio
aptinio / euler010.rb
Created November 5, 2009 03:58
Project Euler Problem 10
require 'mathn'
Prime.new.inject(0) { |sum, n|
break(sum) if n >= 2_000_000
sum + n
}