2018-09-30 23:01:58 +01:00
---
id: 5900f3871000cf542c50fe9a
challengeType: 5
title: 'Problem 27: Quadratic primes'
2019-08-05 09:17:33 -07:00
forumTopicId: 301919
2018-09-30 23:01:58 +01:00
---
## Description
< section id = 'description' >
2020-02-28 21:39:47 +09:00
2018-09-30 23:01:58 +01:00
Euler discovered the remarkable quadratic formula:
2020-02-28 21:39:47 +09:00
< div style = 'margin-left: 4em;' > $n^2 + n + 41$< / div >
2018-09-30 23:01:58 +01:00
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.
2020-02-28 21:39:47 +09:00
2018-09-30 23:01:58 +01:00
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.
2020-02-28 21:39:47 +09:00
2018-09-30 23:01:58 +01:00
Considering quadratics of the form:
2020-02-28 21:39:47 +09:00
< div style = 'margin-left: 4em;' >
$n^2 + an + b$, where $|a| < range $ and $| b | \le range $< br >
where $|n|$ is the modulus/absolute value of $n$< br >
e.g. $|11| = 11$ and $|-4| = 4$< br >
< / div >
2018-09-30 23:01:58 +01:00
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$.
2020-02-28 21:39:47 +09:00
2018-09-30 23:01:58 +01:00
< / section >
## Instructions
< section id = 'instructions' >
< / section >
## Tests
< section id = 'tests' >
```yml
2018-10-04 14:37:37 +01:00
tests:
2020-02-28 21:39:47 +09:00
- text: < code > quadraticPrimes(200)</ code > should return a number.
testString: assert(typeof quadraticPrimes(200) === 'number');
2018-10-04 14:37:37 +01:00
- text: < code > quadraticPrimes(200)</ code > should return -4925.
2019-07-26 19:30:17 -07:00
testString: assert(quadraticPrimes(200) == -4925);
2018-10-04 14:37:37 +01:00
- text: < code > quadraticPrimes(500)</ code > should return -18901.
2019-07-26 19:30:17 -07:00
testString: assert(quadraticPrimes(500) == -18901);
2018-10-04 14:37:37 +01:00
- text: < code > quadraticPrimes(800)</ code > should return -43835.
2019-07-26 19:30:17 -07:00
testString: assert(quadraticPrimes(800) == -43835);
2018-10-04 14:37:37 +01:00
- text: < code > quadraticPrimes(1000)</ code > should return -59231.
2019-07-26 19:30:17 -07:00
testString: assert(quadraticPrimes(1000) == -59231);
2018-09-30 23:01:58 +01:00
```
< / section >
## Challenge Seed
< section id = 'challengeSeed' >
< div id = 'js-seed' >
```js
function quadraticPrimes(range) {
2020-09-15 09:57:40 -07:00
2018-09-30 23:01:58 +01:00
return range;
}
quadraticPrimes(1000);
```
< / div >
< / section >
## Solution
< section id = 'solution' >
```js
// solution required
```
2019-07-18 08:24:12 -07:00
2018-09-30 23:01:58 +01:00
< / section >