79 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						||
id: 5900f3871000cf542c50fe9a
 | 
						||
title: 'Problem 27: Quadratic primes'
 | 
						||
challengeType: 5
 | 
						||
forumTopicId: 301919
 | 
						||
dashedName: problem-27-quadratic-primes
 | 
						||
---
 | 
						||
 | 
						||
# --description--
 | 
						||
 | 
						||
Euler discovered the remarkable quadratic formula:
 | 
						||
 | 
						||
<div style='margin-left: 4em;'>$n^2 + n + 41$</div>
 | 
						||
 | 
						||
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:
 | 
						||
 | 
						||
<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>
 | 
						||
 | 
						||
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$.
 | 
						||
 | 
						||
# --hints--
 | 
						||
 | 
						||
`quadraticPrimes(200)` should return a number.
 | 
						||
 | 
						||
```js
 | 
						||
assert(typeof quadraticPrimes(200) === 'number');
 | 
						||
```
 | 
						||
 | 
						||
`quadraticPrimes(200)` should return -4925.
 | 
						||
 | 
						||
```js
 | 
						||
assert(quadraticPrimes(200) == -4925);
 | 
						||
```
 | 
						||
 | 
						||
`quadraticPrimes(500)` should return -18901.
 | 
						||
 | 
						||
```js
 | 
						||
assert(quadraticPrimes(500) == -18901);
 | 
						||
```
 | 
						||
 | 
						||
`quadraticPrimes(800)` should return -43835.
 | 
						||
 | 
						||
```js
 | 
						||
assert(quadraticPrimes(800) == -43835);
 | 
						||
```
 | 
						||
 | 
						||
`quadraticPrimes(1000)` should return -59231.
 | 
						||
 | 
						||
```js
 | 
						||
assert(quadraticPrimes(1000) == -59231);
 | 
						||
```
 | 
						||
 | 
						||
# --seed--
 | 
						||
 | 
						||
## --seed-contents--
 | 
						||
 | 
						||
```js
 | 
						||
function quadraticPrimes(range) {
 | 
						||
 | 
						||
  return range;
 | 
						||
}
 | 
						||
 | 
						||
quadraticPrimes(1000);
 | 
						||
```
 | 
						||
 | 
						||
# --solutions--
 | 
						||
 | 
						||
```js
 | 
						||
// solution required
 | 
						||
```
 |