This is our solution and implementation to problem #27 on Project Euler.
Note: the code and contents here might be slightly different than what is in the video. We've made some improvements to some of the code since recording.
If you would like to view the original problem and solve it, please visit: Quadratic Primes on Project Euler. If you're having trouble solving this problem, or are just curious to see how others have solved it, feel free to take a look, but please put solid effort into solving this before viewing the actual solution to the problem.
Euler discovered the remarkable quadratic formula:
$$n^2 + n + 41$$
It turns out that the formula will produce 40 primes for the consecutive integer values $$0 \le n \le 39$$ However, when $$n = 40, 40^2 + 40 + 41 = 40(40 + 1) + 41$$ is divisible by 41, and certainly when $$n = 41, 41^2 + 41 + 41$$ is clearly divisible by 41.
The incredible formula $$n^2 - 79n + 1601$$ was discovered, which produces 80 primes for the consecutive values $$0 \le n \le 79$$ The product of the coefficients, −79 and 1601, is −126479.
Considering quadratics of the form:
$$n^2 + an + b$$ where $$|a| < 1000$$ and $$|b| \le 1000$$where $$|n|$$ is the modulus/absolute value of $$n$$
e.g. $$|11| = 11$$ and $$|-4| = 4$$
Find the product of the coefficients, $$a$$ and $$b$$ for the quadratic expression that produces the maximum number of primes for consecutive values of $$n$$ starting with $$n = 0$$
Our solution is given in the TypeScript files below. This solution uses more than one code file. Some solutions use utilities which were created and enhanced while working on this and previous Project Euler problems. Some code in the utilities files might not be used in this particular problem.
This implementation found the solution in 34ms.
If you would like to view the answer, click below to reveal. Please consider reviewing the implementation and trying to code your own solution before viewing the answer.
The answer is -59231.
All of our solutions are hosted on GitHub. The code on this page was pulled from the repo and the solution and execution time were calculated based on that code.