To state the obvious... This isn't Nim related, but serious computation challenges typically require:
* Looking for the most efficient search algorithm. This is for math PhDs, which I definitely am not. * The ideal algorithm would also be easy to [map](https://en.wikipedia.org/wiki/MapReduce) to many simultaneous processes. For example, Computer A might check [0,3,6..], Computer B [1,4,7..], and Computer C [2,5,8..]. There are sophisticated control programs for slicing out the jobs, since the number of available computers can change over time. * These computations usually involve expensive supercomputers / networks of thousands of computers, which is very expensive. Unless you have a major research grant, you probably won't be very competitive. * With so much hardware and electricity cost involved, math researchers are incentivized to spend a lot of time fine-tuning their algorithms and implementations. Nim is a great programming language for most tasks, and it has [gmp](https://en.wikipedia.org/wiki/GNU_Multiple_Precision_Arithmetic_Library) bindings / [etc](https://en.wikipedia.org/wiki/List_of_arbitrary-precision_arithmetic_software), but it wasn't meant to compete with hand-optimized C or assembly language.
