2021-06-15 00:49:18 -07:00
---
id: 5900f4931000cf542c50ffa6
2021-11-18 14:52:12 -08:00
title: 'Problema 295: Orifícios lenticulares'
2021-06-15 00:49:18 -07:00
challengeType: 5
forumTopicId: 301947
dashedName: problem-295-lenticular-holes
---
# --description--
2021-11-18 14:52:12 -08:00
Chamamos a área convexa criada no cruzamento de dois círculos de um orifício lenticular se:
2021-06-15 00:49:18 -07:00
2021-11-18 14:52:12 -08:00
- Os centros de ambos os círculos estão em pontos da rede.
- Os dois círculos se cruzam em dois pontos de da rede distintos.
- O interior da área convexa criada pelos dois os círculos não contém pontos da rede.
2021-06-15 00:49:18 -07:00
2021-11-18 14:52:12 -08:00
Considere os círculos:
2021-06-15 00:49:18 -07:00
2022-04-05 23:36:59 +05:30
$$\begin{align} & C_0: x^2 + y^2 = 25 \\\\
& C_1: {(x + 4)}^2 + {(y - 4)}^2 = 1 \\\\ & C_2: {(x - 12)}^2 + {(y - 4)}^2 = 65 \end{align}$$
2021-06-15 00:49:18 -07:00
2021-11-18 14:52:12 -08:00
Os círculos $C_0$, $C_1$ e $C_2$ estão desenhados na imagem abaixo.
2021-06-15 00:49:18 -07:00
2021-11-18 14:52:12 -08:00
< img class = "img-responsive center-block" alt = "círculos C_0, C_1 e C_2" src = "https://cdn.freecodecamp.org/curriculum/project-euler/lenticular-holes.gif" style = "background-color: white; padding: 10px;" / >
2021-06-15 00:49:18 -07:00
2021-11-18 14:52:12 -08:00
$C_0$ e $C_1$ formam um orifício lenticular, assim como $C_0$ e $C_2$.
2021-06-15 00:49:18 -07:00
2021-11-18 14:52:12 -08:00
Chamamos de par ordenado de números reais positivos ($r_1$, $r_2$) um par lenticular se existirem dois círculos com raio $r_1$ e $r_2$ que formem um orifício lenticular. Podemos verificar que ($1$, $5$) e ($5$, $\sqrt{65}$) são os pares lenticulares do exemplo acima.
2021-06-15 00:49:18 -07:00
2021-11-18 14:52:12 -08:00
Considere $L(N)$ como o número de pares lenticulares distintos ($r_1$, $r_2$) para os quais $0 < r_1 ≤ r_2 ≤ N$. Podemos verificar que $L(10) = 30$ e $L(100) = 3442$.
2021-06-15 00:49:18 -07:00
2021-11-18 14:52:12 -08:00
Encontre $L(100.000)$.
2021-06-15 00:49:18 -07:00
# --hints--
2021-11-18 14:52:12 -08:00
`lenticularHoles()` deve retornar `4884650818` .
2021-06-15 00:49:18 -07:00
```js
2021-11-18 14:52:12 -08:00
assert.strictEqual(lenticularHoles(), 4884650818);
2021-06-15 00:49:18 -07:00
```
# --seed--
## --seed-contents--
```js
2021-11-18 14:52:12 -08:00
function lenticularHoles() {
2021-06-15 00:49:18 -07:00
return true;
}
2021-11-18 14:52:12 -08:00
lenticularHoles();
2021-06-15 00:49:18 -07:00
```
# --solutions--
```js
// solution required
```