Project Euler
Type of site | Problem Solving Website |
---|---|
Created by | Colin Hughes |
Website | projecteuler.net |
Alexa rank | 31,756 (Jul 2017[update])[1] |
Commercial | No |
Registration | Free |
Launched | October 5, 2001 |
Project Euler (named after Leonhard Euler) is a website dedicated to a series of computational problems intended to be solved with computer programs.[2][3] The project attracts adults and students interested in mathematics and computer programming. Since its creation in 2001 by Colin Hughes, Project Euler has gained notability and popularity worldwide.[4] It includes over 600 problems,[5] with a new one added once every two weeks. Problems are of varying difficulty but each is solvable in less than a minute of CPU time using an efficient algorithm on a modestly powered computer. Problems can be sorted on difficulty. A forum specific to each question may be viewed after the user has correctly answered the given question.[6] As of May 2018[update] Project Euler has about 800,000[7] users, from all over the world, who have solved at least one problem.[8]
Participants can track their progress through achievement levels based on the number of problems solved. A new level is reached for every 25 problems solved. Special awards exist for solving special combinations of problems, for instance there is an award for solving fifty prime numbered problems. A special "Eulerians" level exists to track achievement based on the fastest fifty solvers of recent problems so that newer members can compete without solving older problems.[9]
There are over 100 sequences in the On-Line Encyclopedia of Integer Sequences (OEIS) referencing Project Euler problems.[10]
Example problem and solutions[edit]
The first Project Euler problem is
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.[note 1]
Though this problem is much simpler than the typical problem, it serves to illustrate the potential difference that an efficient algorithm makes. The brute-force algorithm examines every natural number less than 1000 and keeps a running sum of those meeting the criteria. This method is simple to implement, as shown by the following pseudocode:
Set TOTAL to 0; for NUM from 1 through 999 do if NUM mod 3 = 0 or if NUM mod 5 = 0 then add NUM to TOTAL; output TOTAL
For harder problems, it becomes increasingly important to find an efficient algorithm. For this problem, we can reduce 1000 operations to a few by using the inclusion–exclusion principle and a closed-form summation formula.
Here, denotes the sum of multiples of below . In big O notation, the brute-force algorithm is O(n) and the efficient algorithm is O(1) (assuming constant time arithmetic operations).
Notes[edit]
- ↑ This is the inclusive OR, not the exclusive OR
See also[edit]
References[edit]
- ↑ "Projecteuler.net Site Overview". Alexa Internet. Retrieved 16 July 2017.
- ↑ Suri, Manil (2015-10-12). "The importance of recreational math". The New York Times. Retrieved 2018-06-05.
- ↑ Foote, Steven (2014). Learning to Program. Addison-Wesley learning series. Pearson Education. p. 249. ISBN 9780789753397. Search this book on
- ↑ James Somers (June 2011). "How I Failed, Failed, and Finally Succeeded at Learning How to Code - Technology". The Atlantic. Retrieved 2013-12-14.
- ↑ "Project Euler (list of problems)". Retrieved 2016-11-02.
- ↑ "Project Euler - About". Retrieved 2008-04-04.
- ↑ Hughes, Colin. "About - Project Euler". projecteuler.net. Retrieved 2016-07-06.
- ↑ "Project Euler (Statistics) - login required". Retrieved 2016-05-24.
- ↑ "Project Euler (News Archives)". Retrieved 2015-03-31.
- ↑ "OEIS sequences referencing Project Euler problems". Retrieved 2016-05-30.
External links[edit]
- Home page
- Links to Translation Projects into several other languages
This article "Project Euler" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Project Euler. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.
This page exists already on Wikipedia. |