2018-09-30 23:01:58 +01:00
---
id: 5900f5241000cf542c510036
title: 'Problem 437: Fibonacci primitive roots'
2020-11-27 19:02:05 +01:00
challengeType: 5
2019-08-05 09:17:33 -07:00
forumTopicId: 302108
2021-01-13 03:31:00 +01:00
dashedName: problem-437-fibonacci-primitive-roots
2018-09-30 23:01:58 +01:00
---
2020-11-27 19:02:05 +01:00
# --description--
2021-07-29 20:14:09 +02:00
When we calculate $8^n$ modulo 11 for $n = 0$ to 9 we get: 1, 8, 9, 6, 4, 10, 3, 2, 5, 7.
2020-11-27 19:02:05 +01:00
2018-09-30 23:01:58 +01:00
As we see all possible values from 1 to 10 occur. So 8 is a primitive root of 11.
2020-11-27 19:02:05 +01:00
2018-09-30 23:01:58 +01:00
But there is more:
2020-11-27 19:02:05 +01:00
2018-09-30 23:01:58 +01:00
If we take a closer look we see:
2020-11-27 19:02:05 +01:00
2021-07-29 20:14:09 +02:00
$$\begin{align}
& 1 + 8 = 9 \\\\
& 8 + 9 = 17 ≡ 6\bmod 11 \\\\
& 9 + 6 = 15 ≡ 4\bmod 11 \\\\
& 6 + 4 = 10 \\\\
& 4 + 10 = 14 ≡ 3\bmod 11 \\\\
& 10 + 3 = 13 ≡ 2\bmod 11 \\\\
& 3 + 2 = 5 \\\\
& 2 + 5 = 7 \\\\
& 5 + 7 = 12 ≡ 1\bmod 11.
\end{align}$$
2020-11-27 19:02:05 +01:00
2021-07-29 20:14:09 +02:00
So the powers of 8 mod 11 are cyclic with period 10, and $8^n + 8^{n + 1} ≡ 8^{n + 2} (\text{mod } 11)$. 8 is called a Fibonacci primitive root of 11.
2020-11-27 19:02:05 +01:00
2021-07-29 20:14:09 +02:00
Not every prime has a Fibonacci primitive root. There are 323 primes less than 10000 with one or more Fibonacci primitive roots and the sum of these primes is 1480491.
2020-11-27 19:02:05 +01:00
2021-07-29 20:14:09 +02:00
Find the sum of the primes less than $100\\,000\\,000$ with at least one Fibonacci primitive root.
2018-09-30 23:01:58 +01:00
2020-11-27 19:02:05 +01:00
# --hints--
2018-09-30 23:01:58 +01:00
2021-07-29 20:14:09 +02:00
`fibonacciPrimitiveRoots()` should return `74204709657207` .
2018-09-30 23:01:58 +01:00
2020-11-27 19:02:05 +01:00
```js
2021-07-29 20:14:09 +02:00
assert.strictEqual(fibonacciPrimitiveRoots(), 74204709657207);
2018-09-30 23:01:58 +01:00
```
2020-11-27 19:02:05 +01:00
# --seed--
2018-09-30 23:01:58 +01:00
2020-11-27 19:02:05 +01:00
## --seed-contents--
2018-09-30 23:01:58 +01:00
```js
2021-07-29 20:14:09 +02:00
function fibonacciPrimitiveRoots() {
2020-09-15 09:57:40 -07:00
2018-09-30 23:01:58 +01:00
return true;
}
2021-07-29 20:14:09 +02:00
fibonacciPrimitiveRoots();
2018-09-30 23:01:58 +01:00
```
2020-11-27 19:02:05 +01:00
# --solutions--
2018-09-30 23:01:58 +01:00
```js
// solution required
```