freeCodeCamp/curriculum/challenges/english/08-coding-interview-prep/project-euler/problem-408-admissible-path...

67 lines
1.2 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

---
id: 5900f5091000cf542c51001b
challengeType: 5
title: 'Problem 408: Admissible paths through a grid'
forumTopicId: 302076
---
## Description
<section id='description'>
Let's call a lattice point (x, y) inadmissible if x, y and x + y are all positive perfect squares.
For example, (9, 16) is inadmissible, while (0, 4), (3, 1) and (9, 4) are not.
Consider a path from point (x1, y1) to point (x2, y2) using only unit steps north or east.
Let's call such a path admissible if none of its intermediate points are inadmissible.
Let P(n) be the number of admissible paths from (0, 0) to (n, n).
It can be verified that P(5) = 252, P(16) = 596994440 and P(1000) mod 1 000 000 007 = 341920854.
Find P(10 000 000) mod 1 000 000 007.
</section>
## Instructions
<section id='instructions'>
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: <code>euler408()</code> should return 299742733.
testString: assert.strictEqual(euler408(), 299742733);
```
</section>
## Challenge Seed
<section id='challengeSeed'>
<div id='js-seed'>
```js
function euler408() {
// Good luck!
return true;
}
euler408();
```
</div>
</section>
## Solution
<section id='solution'>
```js
// solution required
```
</section>