Project Euler problem style (source code)

= Project Euler problem style

<Project Euler> problems typically involve finding or proving and then using a <lemma (mathematics)> that makes computation of the solution feasible without brute force. There is often an obvious brute force approach, but the pick problem sizes large enough such that it is just not fast enough, but the non-brute-force is.

As such, they live in the intersection of <mathematics> and <computer science>.

https://news.ycombinator.com/item?id=7057408 which is mega high on <Google> says:
> I love project euler, but I've come to the realization that its purpose is to beat programmers soundly about the head and neck with a big math stick. At work last week, we were working on project euler at lunch, and had the one CS PhD in our midst not jumped up and explained the chinese remainder theorem to us, we wouldn't have had a chance.

In many cases, the efficient solution involves <dynamic programming>.

There are also a set of problems which are very <numerical analysis> in nature and require the approximation of some <real number> to a given precision. These are often very fiddly as I doubt most people can prove that their chosen <hyperparameters> guarantee the required precision.

Many problems ask for solution modulo some number. In general, this is only so that C/C++ users won't have to resort to using an <arbitrary-precision arithmetic> library and be able to fit everything into `uint64` instead. Maybe it also helps the judge system slightly having smaller strings to compare. The final modulos usually don't add any insight to the problems.

Bibliography:
* https://www.reddit.com/r/cscareerquestions/comments/620u4x/what_are_peoples_thoughts_on_project_euler/ What are peoples thoughts on Project Euler?