55 lines
1.9 KiB
Markdown
55 lines
1.9 KiB
Markdown
![]() |
---
|
|||
|
id: 5900f5001000cf542c510012
|
|||
|
title: 'Завдання 404: Еліпси, що перетинаються'
|
|||
|
challengeType: 5
|
|||
|
forumTopicId: 302072
|
|||
|
dashedName: problem-404-crisscross-ellipses
|
|||
|
---
|
|||
|
|
|||
|
# --description--
|
|||
|
|
|||
|
$E_a$ — еліпс з рівнянням $x^2 + 4y^2 = 4a^2$.
|
|||
|
|
|||
|
$E_a'$ — повернуте зображення $E_a$ на $θ$ градусів проти годинникової стрілки навколо початку координат $O(0, 0)$ на $0° < θ < 90°$.
|
|||
|
|
|||
|
<img class="img-responsive center-block" alt="еліпс E_a та еліпс E_a' повернутий на θ градусів" src="https://cdn.freecodecamp.org/curriculum/project-euler/crisscross-ellipses.gif" style="background-color: white; padding: 10px;" />
|
|||
|
|
|||
|
$b$ — відстань до двох точок перетину, найближчих до початку системи координат, а $c$ — відстань двох інших точок перетину.
|
|||
|
|
|||
|
Ми називаємо впорядкований триплет ($a$, $b$, $c$) канонічним еліпсоїдним триплетом, якщо $a$, $b$ та $c$ - додатні цілі числа.
|
|||
|
|
|||
|
Наприклад, (209, 247, 286) — це канонічний еліпсоїдний триплет.
|
|||
|
|
|||
|
Нехай $C(N)$ — це кількість різних еліпсоїдних триплетів ($a$, $b$, $c$) для $a ≤ N$.
|
|||
|
|
|||
|
Можна переконатися, що $C({10}^3) = 7$, $C({10}^4) = 106$, а $C({10}^6) = 11\\,845$.
|
|||
|
|
|||
|
Знайдіть $C({10}^{17})$.
|
|||
|
|
|||
|
# --hints--
|
|||
|
|
|||
|
`crisscrossEllipses()` має повернути `1199215615081353`.
|
|||
|
|
|||
|
```js
|
|||
|
assert.strictEqual(crisscrossEllipses(), 1199215615081353);
|
|||
|
```
|
|||
|
|
|||
|
# --seed--
|
|||
|
|
|||
|
## --seed-contents--
|
|||
|
|
|||
|
```js
|
|||
|
function crisscrossEllipses() {
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
crisscrossEllipses();
|
|||
|
```
|
|||
|
|
|||
|
# --solutions--
|
|||
|
|
|||
|
```js
|
|||
|
// solution required
|
|||
|
```
|