NHacker Next
login
▲Project Eulerprojecteuler.net
418 points by swatson741 15 hours ago | 102 comments
Loading comments...
cambaceres 49 minutes ago [-]
12 years ago I was a failed computer science student, wasting my time on drugs. Having failed so many classes I did not see any future at all, and I was considering killing myself to get out of the anxiety and stress. My confidence regarding programming etc was 0.

I decided to apply for a junior developer job. I got an interview and to prepare for an interview I found this site, Project Euler. I did ten or so tasks.

The interview started out pretty bad, they asked me some technical questions which I did not give good answers to, and I saw that they where not impressed. Then they wanted me to solve two programming problems on a white board. Imagine the relief I felt when both of these questions where from the ones that I solved on Project Euler a couple of days before! I nailed them and the interviewers where clearly impressed. In the end they hired me and motivated it with that although I lack a lot of theory I am obviously a very good coder haha.

Anyway, that was what I needed, when I got this job I quit the drugs and got my act together. 12 years later I live a confortable life as a freelancer and have even managed to build my own SaaS with paying customers! Thank you Project Euler.

SethTro 10 hours ago [-]
I wrote Problem 371, https://projecteuler.net/problem=371 , as a high school student in 2012!

I'm so happy to have spent twenty years of my life learning math and solving problems on Project Euler and elsewhere.

am17an 9 hours ago [-]
This is one of my favourite problems, I still remember that it has a very real edge case even though I solved it more than 10 years ago. Thank you for the problem!
vhcr 5 hours ago [-]
I'm guessing if you only calculate based on the digits, the probability is going to be slightly different than the real one, because you only have a finite number of plates you can choose from.
dpacmittal 4 hours ago [-]
Sounds like the birthday paradox problem. Is it?
SethTro 8 hours ago [-]
I'm glad you enjoyed! It was a real game I played when driving around.
knollimar 8 hours ago [-]
Can you reuse a plate with 500?
hatthew 7 hours ago [-]
The wording seems to strongly imply no; you need two separate plates with 500 on them.
stevefan1999 6 hours ago [-]
That sounds like a combinatorial problem...alphabets from AAA to ZZZ, numbers from 000 to 999.

That means one of the total sum of possible car plates is 26^3.

Since we want to find pairs (x, y) that x + y = 1000. That means the total sum would also add up sum([1 for x in range(1000) for y in range(1000) if x + y == 1000])/2 since there is a symmetry.

But wait, find the expected number of plates he needs to see for a win. So maybe we need to borrow something from statistics (Possion/chi-squared distribution) or queueing theory...?

Edit: ah I saw the solution, it is a Markov chain.

6 hours ago [-]
dekhn 9 hours ago [-]
Interesting- I ask a license plate question (when will california run out of plates in its current serialization format, based on a couple of plates observed in two different years). It's a much simpler question, though (just linear extrapolation).
peterkagey 11 hours ago [-]
I wrote Problem 619 (https://projecteuler.net/problem=619) which was published on 2018-01-27 and solved by 474.

The problem was based on 2013 Putnam Exam problem A2 (https://kskedlaya.org/putnam-archive/2013.pdf) which I took at the end of undergrad.

I got an email six years later (in November 2024) telling me they accepted the problem:

Greetings!

Please excuse the email. It's quite possible that you are no longer active at Project Euler, but we are currently trying to retrospectively acknowledge contributors of problems.

You were identified as being involved with Square subsets [619 m] in Sep-17.

If you would like to be added as a verified contributor, please reply to this email and provide the username you currently use at projecteuler.net. Please note that contributor usernames will not appear publicly, rather they will be used internally to unlock new contributor awards we are introducing.

Regards,

Project Euler Team

webo 10 hours ago [-]
I was curious if LLMs are good for this problem. ChatGPT-5.1-Thinking one-shotted a correct Python script without any library use (https://pastecode.io/s/jg6ggxpm).

Claude Opus failed to solve after trying for a while.

whimsicalism 9 hours ago [-]
project euler problems are likely in the RL corpora
mvdtnz 8 hours ago [-]
First of all, don't do this. No one cares. Secondly obviously every Euler solution is going to appear in the training data many times over. It's no surprise at all that an LLM can regurgitate data that was given to it.
kragen 8 hours ago [-]
I thought it was interesting, and I wouldn't be surprised if Euler solutions weren't in the training data, especially for the later problems like this one.
kami23 4 hours ago [-]
I appreciate you trying it! So at least I care.

I used to do these in college to procrastinate my homework. I always had the most difficulty with the problems that required data structures I wasn't exposed to previously and ended up making really complicated solutions that were inefficient as hell, but fun nonetheless.

I might give them a try with golang now that it's my preferred language. I used to do them in python as that was our intro language.

kragen 4 hours ago [-]
Perhaps you meant to reply to webo? I'm not sure what you think I might have been trying.
LTL_FTC 5 hours ago [-]
Were you also one of Dr. Kedlaya’s students? Or just used that link? I was in an undergrad course of his and really enjoyed it. Such a smart guy.
BeetleB 12 hours ago [-]
Ha! I did a lot of these around 2007-2008. I solved the first 100 or so ones. Solving these were more fun than any other programming problems site I've seen. I quit it when I realized I was spending 4+ hours per problem - I couldn't justify the time.

Beyond a certain point, most required some knowledge of elementary number theory.

misja111 23 minutes ago [-]
Same for me, the first 100 are doable, after that they take more and more time and require deeper mathematical knowledge. Which is nice as well, but at some point I started to wonder if it wouldn't be better if I spent all that time on learning some more practical knowledge.
goalieca 11 hours ago [-]
Same timeline for me! This was my great procrastination side quest during grad school. I learned haskell and a bit of ocaml working on these. Functional languages are extremely well suited to these kinds of problems.
coef2 11 hours ago [-]
I agree with you. About a decade ago, I got really tired of coding interview prep. I somehow ended up getting into Project Euler and worked through the first 100 problems. It was a great way to learn a bit of number theory and regain my interest in programming.
Gormisdomai 13 hours ago [-]
This website was a part of my education as a computer scientist and seeing it here again I'm curious for the full story of how this site was made. Who made it, what do they do now, is it part of a broader project they have?

There is only very basic info here: https://en.wikipedia.org/wiki/Project_Euler

observationist 13 hours ago [-]
https://archive.is/iEQxy

This article is excellent. It mentions the creator, Colin Hughes, and the story behind the project, but it boils down to a passion project for him.

campbel 12 hours ago [-]
Back in early 2000s, before hackerrank and similar coding sites, this is what my professors recommended for training programming skills.
weird-eye-issue 3 hours ago [-]
Yeah my HS CS teacher recommended it but I don't think it was ever required
unkulunkulu 13 hours ago [-]
The most fun on this site is solving a problem and then having your mind blown by solutions in Apl/j/k and trying to guess what they mean without knowing anything about those languages
taeric 11 hours ago [-]
Even better than the crazy languages, is seeing some fundamental math used to prevent having to do a ridiculously expensive search.

That said, raw brute force often did far better than you'd like to admit.

debatem1 10 hours ago [-]
The biggest thing I learned from PE was that neither elegant theory nor brute force had a monopoly on successful optimization strategies. It's been something I've carried with me ever since and has over and over again proven its value.

A real gem of a resource.

omegaham 11 hours ago [-]
See also Uiua, a newcomer to the "extremely cool but completely incomprehensible language" family!
thornewolf 13 hours ago [-]
I have done Project Euler very sporadically since high school. To date I've only done problems 1-54. Despite this, I think the website was a big contributor to my love of programming. I found it before knowing about leetcode and I think it prepared me well. I think I owe Project Euler a decent %-age of my eventual entry into Software Engineering as a field.
ljlolel 12 hours ago [-]
Ditto!

Also a great way to learn a new programming language is to try project Euler problems with it.

Imnimo 12 hours ago [-]
These are both a lot more fun, and a lot more educational than leetcode problems. Strongly recommend for anyone looking for practice problems when learning a new language or whatever.
pveierland 9 hours ago [-]
What's really neat is that most of the problems are so compact that you can just read about the full problem, then spend hours and days thinking about possible solutions.

I created a PDF version that I keep on my Remarkable for puzzling: https://github.com/pveierland/project_euler_offline

varyherb 4 hours ago [-]
Project Euler spurred my love for math and programming when I was 15. I got through the first few with pencil and paper and then quickly realized I was going to need to learn how to program. Got started with Java (in Eclipse) and then moved on to Python. I feel like it completely changed the trajectory of my life.
sega_sai 9 hours ago [-]
There is a somewhat similar idea behind "Ponder This" by IBM https://research.ibm.com/haifa/ponderthis/index.shtml They post a problem every month and in the end post a solution. I used to spend a bit too much time on those.
hintymad 9 hours ago [-]
The difference is that Ponder This is harder than the average problems in Euler Project, and requires higher level of mathematical maturity.
kekqqq 11 hours ago [-]
No one tells you that they delete inactive accounts. I used to have over 300 solved problems htere. Now it is all gone, all the effort, but the skill remained of course.
inasio 10 hours ago [-]
A few years back (10 maybe?) they had a disk crash, and there was a notice that for people with 100 or more problems solved they'd do an extra effort to recover their solutions and add you back, not sure if it was only posted on the main website. I was lucky to get my account back at the time
cgh 3 hours ago [-]
I still have the code for the first 50 problems in GitHub. The last commit was thirteen years ago. I don’t know why I checked these in rather than treating them as throwaway code like I did for so many other things, but I’m glad I did as I’m sure my PE account is gone now too.
doodpants 10 hours ago [-]
So, I gather that you treated your solutions as throw-away code, rather than keeping them? Kind of surprising, considering that some problems build off of each other, or otherwise benefit from sharing code; you never know when the code for one solution could be useful later. For example, a prime number generator/tester is necessary for many of the problems.

(I have all my solution code, in source control no less, so if I ever lost my account, I could just run them all and re-enter the solutions.)

yogsototh 10 hours ago [-]
I remember there were data loss, but my account appears to have been recovered. You may try to login again, and with luck, like me you will get back your history.
Loocid 8 hours ago [-]
How long before they start deleting? I haven't logged in for 5 years and my account is still there.
nik9000 12 hours ago [-]
I ranked on that once! I was like the 23rd person to do one of the new problems one time. Just about as low as you can rank. It was a fun puzzle but you had to be awake at a funky time to do it.
meken 11 hours ago [-]
One of my best memories was in undergrad there was one semester in 2013 where half a dozen of my CS classmates and I competed to try and solve the most Project Euler problems. We had a leaderboard and everything.

I saw first hand how much faster my friend’s Java solutions were than my Python solutions.

Good times.

akudha 10 hours ago [-]
Are there other similar sites? I remember this one, for bioinformatics

https://rosalind.info/problems/list-view/

leosanchez 3 hours ago [-]
Since this is still on HN frontpage. Does anyone suggest any math books to help solve these problems. I am pretty sure you can't solve problems above 50 without strong maths background.
siddboots 2 hours ago [-]
Concrete Mathematics is probably the best single book that you could read to prepare you for some the problems beyond the first 50. It’s extremely fun, and also mathematically serious. A large portion of PE problems are exactly in the cross sections of number theory, combinatorics, and computation that is covered in this book.

https://en.wikipedia.org/wiki/Concrete_Mathematics

ketanmaheshwari 12 hours ago [-]
I solved a few using AWK, fun: https://github.com/ketancmaheshwari/projecteuler
n4r9 48 minutes ago [-]
After learning AWK I realised it could be used really neatly for problem 67. I remember it was blazing fast, orders of magnitude faster than Python
mjcohen 6 hours ago [-]
Did you use the regular version or the one with multiple-precision values?
Sparkle-san 13 hours ago [-]
Like many others here, Project Euler was foundational in my education and growth as a programmer.

Leonhard Euler himself is an incredible figure and arguably the most prodigious contributor to mathematics throughout history. So much so that people started naming things discovered by him after the next person to have proved them.

https://en.wikipedia.org/wiki/List_of_topics_named_after_Leo...

matthewaveryusa 13 hours ago [-]
I attribute project euler for instilling the playful enjoyment of writing programs in college while I was studying electrical and computer engineering. I owe my career to it!
davidhariri 11 hours ago [-]
I learned so much from this site- including that so much education comes from being prompted to ask the right questions.
zkmon 13 hours ago [-]
A great one of my favorite websites of the past. Wonder how they are coping with the issue of their users using AI to solve problems.
bee_rider 3 hours ago [-]
It is a mostly single player game, if users want to cheat they are only cheating themselves really, right?
Schiphol 12 hours ago [-]
I suppose I wonder how those users are coping with having the robots do all the stuff instead of them doing some of the stuff.
schlauerfox 9 hours ago [-]
I love a good puzzle solving club. Some of my favorites: https://www.themastertheorem.com/ https://en.wikipedia.org/wiki/Perplex_City https://en.wikipedia.org/wiki/MindTrap
dhbradshaw 5 hours ago [-]
Project Euler was what I used to get comfortable with my two main languages -- first python and then rust.

I loved to solve it and then look through all the different solutions and find pretty ideas and idioms.

RandyOrion 6 hours ago [-]
After opened https://projecteuler.net/ I got

403 Forbidden Request forbidden by administrative rules.

Note: I didn't know and open this website until now.

kragen 4 hours ago [-]
Well, that sucks!
11 hours ago [-]
phil-pickering 10 hours ago [-]
I think a hat-tip is due to freeCodeCamp for introducing Project Euler (along with Rosetta Code) to a new generation of programmers:

https://www.freecodecamp.org/learn/project-euler/#project-eu...

bre1010 13 hours ago [-]
I discovered project euler as a novice programmer in high school around 15 years ago. I loved how solving a problem unlocks a secret forum only available to other solvers. I would spend hours reading through everyone's prior solutions and trying to understand them. One guy had tagged his profile as "haskell" but would always provide his solutions in ruby which threw child-me for quite a loop (I actually thought ruby and haskell were the same language for some time)!
codexb 12 hours ago [-]
Wow, I can't believe this is still around! I'm glad to see artifacts from the past like this are still out there on the internet.

Makes me miss Google CodeJam though.

pkoird 11 hours ago [-]
I remember it vaguely but there used to be a badge awarded for being among the first 100 people to solve the problem. I was obsessed with getting that badge to the point that I spent obscene amount of time solving the-then recently released problem even when the following day was my final exams. I did manage to get that badge though. This was circa 2013. Fun times!
DiabloD3 9 hours ago [-]
So, to remind myself, Euler's name is pronounced more like Oiler, right?
nimih 9 hours ago [-]
That's how I was taught, and Wikipedia agrees (and even provides audio clips alongside the IPA and English phonetic transcriptions).
theoldgreybeard 12 hours ago [-]
I love running euler problems when trying to learn the basics of a new programming language. I have a small collection of programs in like 10 different languages that I keep around as a reference for things because I always try to use language-specific features to solve the problems, and then I reference them as examples.
gregdeon 12 hours ago [-]
Wow. You reminded me of a computer engineering class years ago where we wrote assemblers and emulators for a simple architecture. I tested mine by writing a solution for one of the first Project Euler questions!
theoldgreybeard 7 hours ago [-]
I still have my Oberon-2 compiler from my compilers class and a handful of Euler questions I used to test it.
mapehe 2 hours ago [-]
This is such a great site.
seeknotfind 3 hours ago [-]
Thousand of hours on this. Love it.
callc 12 hours ago [-]
I too owe had my love for programming captured through project Euler. I am immensely grateful to my maths prof who introduced me to it.

I also love looking back at my old PE code and having absolutely no idea what it doing. No comments, no docs, no notes. From a different era.

senderista 10 hours ago [-]
So much more fun than leetcode. OTOH, unlikely to help you in an interview.
cmpalmer52 2 hours ago [-]
It would help you if I were doing the interview…
11 hours ago [-]
0x1ch 12 hours ago [-]
I remember visiting Project Euler back in 2013/14 or so. Was really my first introduction to programming exercises as youngin. Probably did fifteen or so of them before ADHD kicked in though. A small gem on the web.
aiahs 11 hours ago [-]
I did a lot of these when I was around 15-16 and it solidified for me my interest in CS but in general abstract thinking and problem solving. Great site.
sizzzzlerz 12 hours ago [-]
i was a euler fanatic some years ago reaching problems in the 500s albeit, skipping problems along the way. at that point, too many problems required a deeper math background than i possessed so i abandoned it. what amazed me was that others composed solutions that solved problems in mere milliseconds that brute force approaches would still be running when the universe cooled to absolute zero.
rbongers 12 hours ago [-]
I only reached the 100s back in the day. What amazed me was that it seemed like every problem had a paper solution, when it would take any computer algorithm thousands or millions of computations to solve the same problem.
rufus_foreman 10 hours ago [-]
I played around with some of the easier problems, my favorite was a couple times when starting with the obvious brute force solution in code and then refactoring and simplifying it iteratively ended up getting me the paper solution.
theotherpablo 9 hours ago [-]
Anyone else having problems registering? or is my solution to Problem Zero wrong...
theotherpablo 9 hours ago [-]
Anyone else having problems registering or is my solution wrong?
medbar 10 hours ago [-]
very surprised this project is still releasing problems weekly - I remember this being up when I was in high school. maybe I'll pick it up again since I only did the first ~30 or so back then.
philiplu 10 hours ago [-]
Not only are they still releasing problems weekly, they have a long backlog of problems waiting for release. I submitted a problem back in April 2024, and it didn't get published until October 2025 (problem 963). There's an excellent core development team that works with problem-submitters to get problems tuned up for Project Euler.
butifnot0701 7 hours ago [-]
The leetcode before leetcode. Hail.
darylteo 11 hours ago [-]
How I learnt about prime number sieves.

Good prep for Advent of Code in 2 weeks.

shaunxcode 11 hours ago [-]
this is how you end up getting into APL/array langs for sure.
rajandatta 7 hours ago [-]
Second this ... have been writing some solutions in Kap, an APL like variant. It's stunning to see 20+ idiomatic solutions in one screen as many problems can be solved in a compact manner. The elegance really reminds one of why we fell in love with Programming in the first place
anthk 11 hours ago [-]
Thanks for reminding me this; I'd try to solve them both in Scheme (s9fes) and JimTCL.
nurettin 12 hours ago [-]
2007 I remember writing one-liner ruby solutions up to 100.
sbmthakur 12 hours ago [-]
Hackerrank also used to host(still has?) PE problems with additional test cases.
graycat 13 hours ago [-]
Glanced at the exercises. It appears that two of them have numbers arranged in a triangle and ask for a longest path.

Hmm. Given such a triangle, let m be the largest number in the triangle. For each x in the triangle, replace it with m - x. For the resulting triangle, solve it to give the shortest path using one of the well known network shortest path algorithms.

n4r9 28 minutes ago [-]
The "well known" path algorithms in this case are overkill; the graph is a tree. And Dijkstra is not really designed to handle negative edge weights (although it would probably function correctly in this instance).
thaumasiotes 9 hours ago [-]
> Hmm. Given such a triangle, let m be the largest number in the triangle. For each x in the triangle, replace it with m - x.

By the time you've actually done these two steps, you could have already finished the problem with a dynamic programming approach.

(Starting from the bottom row and working upward, replace each cell in the row with the length of the longest path from itself to the bottom, which you can know by checking which of its two children has the longer path associated.)

ssalmon74 15 hours ago [-]
[flagged]
treve 14 hours ago [-]
Nobody is interested in AI commentary.
vntok 9 hours ago [-]
That seems incorrect. This sub-thread is the longest already in this submission, and no other commenter remarked about the parent commenter being an AI.
rhdunn 14 hours ago [-]
I've personally found the opposite. In order to advance you need to know the specific techniques or mathematics and there are no hints or information on how to approach the problem. So it boils down to how much of that mathematics you know. If you don't then the brute force approaches take a long time to find the solution.
btilly 13 hours ago [-]
I disagree.

Often the techniques that you need for a harder problem, are discussed in a forum for an easier problem. Even more often the techniques that you need for a given problem are possible to work out from scratch. And the more you work out, the easier they get.

This can be very frustrating for people who are used to being spoon fed techniques, then given problems which use what they have just been taught. But it is a lot of fun for people who enjoy puzzles. If it isn't your cup of tea, that's fine. But don't dismiss it for people who enjoy it.

Disclaimer. I haven't personally engaged in the last few years, but I've spent a lot of time on it. I solved 598 and contributed a couple of puzzles as well. One of which they immediately saw a way to do that I hadn't, and put it out there with a difficulty level that I didn't know how to do! That was https://projecteuler.net/problem=240.

leosanchez 13 hours ago [-]
I think with a few math tricks you can solve around 25-50, It gets very tough after that without maths background.
rhdunn 12 hours ago [-]
Yeah. I think I got to around 10-15 before I got stuck. It's been several years since I attempted it though.
josh-stylo 13 hours ago [-]
Completely agree! Google + Project Euler was how I learned to code
fortranfiend 10 hours ago [-]
fake frustration yet another thing named after euler.
10 hours ago [-]