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.
Not one interviewer had heard of it.
Glad it worked out for you!
It's a system that helps services companies within a certain industry to digitalize all their paperwork, report to the national goverment agencies etc. They do a lot of manual work which can be digitalized easily.
I found this opportunity by just randomly throwing out in a big community that I build software and is looking for ideas, and some guy answered that ended up being my business partner for 3 years now. We are not rich from it but earn like $2000 each a month after tax which is quite a lot for us since we live in a country where healthcare, schools, parental leave etc are covered by taxes. And we dont need to put more than a few hours a month on support. I have put in basically all my spare time for 2 years to get to this point though, the biggest reward is not the money but the process of sitting through the nights being completely in the zone and building this stuff knowing that it will be great :D
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
Claude Opus failed to solve after trying for a while.
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.
I'm so happy to have spent twenty years of my life learning math and solving problems on Project Euler and elsewhere.
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.
Beyond a certain point, most required some knowledge of elementary number theory.
There is only very basic info here: https://en.wikipedia.org/wiki/Project_Euler
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.
That said, raw brute force often did far better than you'd like to admit.
A real gem of a resource.
Also a great way to learn a new programming language is to try project Euler problems with it.
I created a PDF version that I keep on my Remarkable for puzzling: https://github.com/pveierland/project_euler_offline
I saw first hand how much faster my friend’s Java solutions were than my Python solutions.
Good times.
(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.)
I kept the code that I found clever or useful, but I had a very borderline approach to archiving my stuff in general back then. I was still in high school.
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...
Makes me miss Google CodeJam though.
https://www.freecodecamp.org/learn/project-euler/#project-eu...
> A number is a perfect square, or a square number, if it is the square of a positive integer. For example, is a square number because ; it is also an odd square. The first 5 square numbers are: , and the sum of the odd squares is . Among the first 881 thousand square numbers, what is the sum of all the odd squares?
I wanted to use Uiua, and hence:
/+ⁿ2+1⍜÷⇡ 2 881000
But Uiua doesn’t support big ints, just f64. So yuck, python to get an accurate answer. Just sad now.
Skills are trained by practice and thinking. Skilled people will never be subsidized by AI. Unskilled juniors, who don't train properly will go into tranches (as it's already happening).
403 Forbidden Request forbidden by administrative rules.
Note: I didn't know and open this website until now.
I loved to solve it and then look through all the different solutions and find pretty ideas and idioms.
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.
Good prep for Advent of Code in 2 weeks.
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.
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.)
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.
That free account really is valuable!