freeCodeCamp/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-440-gcd-and-tiling.md

1.6 KiB
Raw Blame History

id title challengeType forumTopicId dashedName
5900f5241000cf542c510037 Problema 440: Máximo divisor comum e ladrilhamento 5 302112 problem-440-gcd-and-tiling

--description--

Queremos preencher com ladrilhos um tabuleiro de comprimento n e altura 1 completamente, com blocos de 1 × 2 ou 1 × 1 com um único algarismo decimal no topo:

dez blocos 1x1 com um único algarismo decimal no topo e um bloco 1x2

Por exemplo, aqui temos algumas maneiras de ladrilhar um tabuleiro de comprimento n = 8:

exemplos de maneiras de ladrilhar um tabuleiro de comprimento n = 8

Considere T(n) como o número de maneiras de ladrilhar um tabuleiro de comprimento n, como descrito acima.

Por exemplo, T(1) = 10 e T(2) = 101.

Considere S(L) como a soma tripla \sum_{a, b, c} gcd(T(c^a), T(c^b)) para 1 ≤ a, b, c ≤ L.

Por exemplo:

\begin{align}   & S(2) = 10.444 \\\\
  & S(3) = 1.292.115.238.446.807.016.106.539.989 \\\\ & S(4)\bmod 987.898.789 = 670.616.280. \end{align}$$

Encontre $S(2000)\bmod 987.898.789$.

# --hints--

`gcdAndTiling()` deve retornar `970746056`.

```js
assert.strictEqual(gcdAndTiling(), 970746056);
```

# --seed--

## --seed-contents--

```js
function gcdAndTiling() {

  return true;
}

gcdAndTiling();
```

# --solutions--

```js
// solution required
```