Apr 08
By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6^(th) prime is 13.
What is the 10001^(st) prime number?
My solution in Ruby:
def is_prime ( p )
if p == 2
return true
elsif p <= 1 || p % 2 == 0
return false
else
(3 .. Math.sqrt(p)).step(2) do |i|
if p % i == 0
return false
end
end
return true
end
end
prime_count = 6
prime_number = 13
number = 13
while prime_count < 10001 do
number += 2
if is_prime(number)
prime_count += 1
prime_number = number
end
end
puts '***********'
puts "#{prime_count}: #{prime_number}"
Apr 08
The sum of the squares of the first ten natural numbers is,
1^(2) + 2^(2) + ... + 10^(2) = 385
The square of the sum of the first ten natural numbers is,
(1 + 2 + ... + 10)^(2) = 55^(2) = 3025
Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is 3025 − 385 = 2640.
Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum.
My solution in Ruby:
def sum_and_square(j, k)
tmp = 0
for i in 1..100
tmp += i**j
end
tmp**k
end
puts sum_and_square(1,2) - sum_and_square(2,1)
Apr 08
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 number that is evenly divisible by all of the numbers from 1 to 20?
My solution in Ruby:
def has_remainder?(var)
1.upto(20) { |i| return true if var % i != 0 }
false
end
number = 0
loop do
number += 1
break if !has_remainder?(number)
end
puts numbe
Apr 08
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.
My solution in Ruby:
var = 0
999.downto(100) { |i|
999.downto(100) { |j|
prod = i * j
var = [var, prod].max if prod.to_s == prod.to_s.reverse
}
}
puts "Maximum palindrome is #{var}."
Apr 08
The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?
My solution in Ruby:
def is_prime ( p )
if p == 2
return true
elsif p <= 1 || p % 2 == 0
return false
else
(3 .. Math.sqrt(p)).step(2) do |i|
if p % i == 0
return false
end
end
return true
end
end
i, num = 1, 1
loop do
i += 1
if 600851475143 % i == 0
num = 600851475143 / i
break if is_prime(num)
end
end
puts "largest prime factor: " + num.to_s
Apr 08
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
Find the sum of all the even-valued terms in the sequence which do not exceed four million.
My solution in Ruby:
t1, t2, even_sums = 1, 2, 2
loop do
temp = t1 + t2
break if temp > 3999999
even_sums += temp if temp % 2 == 0
t1 = t2
t2 = temp
end
puts even_sums
Apr 08
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.
My solution in Ruby:
sum = 0
for i in 1..999
sum += i if i % 3 == 0 or i % 5 == 0
end
puts sum