--- id: 5900f4051000cf542c50ff18 challengeType: 5 title: 'Problem 153: Investigating Gaussian Integers' videoUrl: '' localeTitle: 'Problema 153: Investigando Inteiros Gaussianos' --- ## Description
Como todos sabemos, a equação x2 = -1 não tem soluções para o x real.

Se introduzirmos o número imaginário i, esta equação tem duas soluções: x = ie x = -i.

Se dermos mais um passo, a equação (x-3) 2 = -4 tem duas soluções complexas: x = 3 + 2i e x = 3-2i. x = 3 + 2i e x = 3-2i são chamados conjugados complexos dos outros.

Números da forma a + bi são chamados números complexos.

Em geral a + bi e a-bi são o conjugado complexo de cada um. Um Integral Gaussiano é um número complexo a + bi tal que tanto a como b são inteiros.

Os inteiros regulares também são inteiros de Gauss (com b = 0).

Para distingui-los dos inteiros de Gauss com b ≠ 0, chamamos esses inteiros de "inteiros racionais".

Um inteiro Gaussiano é chamado de divisor de um inteiro racional n se o resultado também for um inteiro Gaussiano.

Se, por exemplo, dividirmos 5 por 1 + 2i, podemos simplificar da seguinte maneira:

Multiplique o numerador e o denominador pelo conjugado complexo de 1 + 2i: 1−2i.

O resultado é .

Então 1 + 2i é um divisor de 5.

Note que 1 + i não é um divisor de 5 porque.

Note também que se o Integral Gaussiano (a + bi) é um divisor de um inteiro racional n, então seu conjugado complexo (a-bi) é também um divisor de n. De fato, 5 tem seis divisores de tal forma que a parte real é positiva: {1, 1 + 2i, 1 - 2i, 2 + i, 2 - i, 5}.

Segue-se uma tabela de todos os divisores para os primeiros cinco números inteiros positivos:

n Divisores inteiros de Gauss com partsum reais positivos s (n) destes

divisors111 21, 1 + i, 1-i, 25 31, 34 41, 1 + i, 1-i, 2, 2 + 2i, 2-2i, 413 51, 1 + 2i, 1-2i, 2 + i, 2-i, 512 Para divisores com partes reais positivas, então, temos:. Para 1 ≤ n ≤ 105, ∑ s (n) = 17924657155. O que é ∑ s (n) para 1 ≤ n ≤ 108?

## Instructions
## Tests
```yml tests: - text: euler153() deve retornar 17971254122360636. testString: 'assert.strictEqual(euler153(), 17971254122360636, "euler153() should return 17971254122360636.");' ```
## Challenge Seed
```js function euler153() { // Good luck! return true; } euler153(); ```
## Solution
```js // solution required ```