freeCodeCamp/curriculum/challenges/portuguese/08-coding-interview-prep/project-euler/problem-153-investigating-g...

2.7 KiB
Raw Blame History

id challengeType title videoUrl localeTitle
5900f4051000cf542c50ff18 5 Problem 153: Investigating Gaussian Integers 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: 12i.

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

tests:
  - text: <code>euler153()</code> deve retornar 17971254122360636.
    testString: 'assert.strictEqual(euler153(), 17971254122360636, "<code>euler153()</code> should return 17971254122360636.");'

Challenge Seed

function euler153() {
  // Good luck!
  return true;
}

euler153();

Solution

// solution required