Project Euler

Recently I decided that I wanted to learn F#.  After perusing a few “tutorials” I felt that the language was going to be difficult to grasp without some real problems to solve.  That’s when I stumbled across Project Euler.  Here is the description from their website:

Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.

This is the perfect avenue to explore a language like F#.  After I solved a few problems I decided that I could use this to keep mentally fit. in several languages.  I chose five different languages so I could solve one problem per week and post solutions each week day.  Without further adieu, here are the languages I chose and why.

My Languages


I have been intrigued by this language for some time.  I don’t know enough about it yet to say what it is or even if I like it.  I have heard that if I understand F#, it will make me a better C# programmer.  I guess we’ll find out.


Because I use C# everyday, sometimes I prototype the Euler solutions in it before trying the other languages.  After I’ve worked out a solution, I will often try to figure out the “F# way” to solve the problem.  This takes quite a while for me.


I wanted to throw in a dynamic language and narrowed it down to Python or Ruby.  I have done some Python programming in the past so I thought why not try something new.  IronRuby, for those that don’t know, is a .NET implementation of Ruby so it works well for me in Visual Studio.


With most of these problems there is a clever trick you have to figure out and once know that, the problem is usually simple to code.  For my SQL solutions, however, I want to take a different approach by assuming the database is filled with lots of number information and then I just need to write the query.


I’m not real excited about JavaScript but it’s just too damned popular to ignore.



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.

F#  –  C#  -  IronRuby  -  TSQL  -  JavaScript


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, …

By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.



The prime factors of 13195 are 5, 7, 13 and 29.

What is the largest prime factor of the number 600851475143?

F# C# IronRuby TSQL JavaScript


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.

F#C#IronRuby TSQL JavaScript


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?

F# C# IronRuby TSQL JavaScript


The sum of the squares of the first ten natural numbers is,

12 + 22 + … + 102 = 385

The square of the sum of the first ten natural numbers is,

(1 + 2 + … + 10)2 = 552 = 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.

F# C# IronRuby TSQL JavaScript


By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13.

What is the 10001st prime number?

F#C#IronRuby TSQL JavaScript


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


F#C#IronRuby TSQL JavaScript


A Pythagorean triplet is a set of three natural numbers, a < b < c, for which,

a2 + b2 = c2

For example, 32 + 42 = 9 + 16 = 25 = 52.

There exists exactly one Pythagorean triplet for which a + b + c = 1000.
Find the product abc.

F#C#IronRuby TSQL JavaScript


The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.

Find the sum of all the primes below two million.

F# – C# – IronRuby – TSQL – JavaScript


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: