Percursos
/
Elixir
Elixir
/
Exercícios
/
Terno pitagórico
Terno pitagórico

Terno pitagórico

Médio

Introdução

És um resolvedor de problemas experiente, conhecido pela tua capacidade de enfrentar os enigmas matemáticos mais difíceis. Numa certa noite, recebes uma carta urgente de um inventor chamado Triangle Tinkerer, que está a trabalhar num projeto inovador. A carta diz o seguinte:

Caro Matemático,

Preciso da tua ajuda. Estou a conceber um dispositivo que assenta nas propriedades únicas dos ternos pitagóricos: conjuntos de três números inteiros que satisfazem a equação a² + b² = c². Este dispositivo vai revolucionar a navegação, mas, para funcionar, tenho de o programar com todos os ternos possíveis em que a soma de a, b e c é igual a um número específico, N. Calcular estes ternos à mão levaria anos, mas ouvi dizer que és mais do que capaz de dar conta do recado.

O tempo é precioso. O futuro da minha invenção, e talvez até o futuro da inovação matemática, depende da tua capacidade de resolver este problema.

A importância da tarefa motiva-te, e decides procurar todos os ternos pitagóricos que satisfazem a condição. O teu trabalho poderá ter implicações de grande alcance, abrindo novas possibilidades na ciência e na engenharia. Consegues estar à altura do desafio e fazer história?

Instruções

Um terno pitagórico é um conjunto de três números naturais, {a, b, c}, para os quais,

a² + b² = c²

e tal que,

a < b < c

Por exemplo,

3² + 4² = 5².

Dado um número inteiro de entrada N, encontra todos os ternos pitagóricos para os quais a + b + c = N.

Por exemplo, com N = 1000, existe exatamente um terno pitagórico para o qual a + b + c = 1000: {200, 375, 425}.

Testes lentos

Um ou vários dos testes deste exercício estão marcados com a etiqueta :slow, porque podem demorar muito tempo a terminar. Por este motivo, não serão executados na plataforma pelo executor de testes automático. Se estiveres a resolver este exercício diretamente na plataforma, no editor web, talvez queiras considerar descarregar o exercício para a tua máquina. Assim, poderás executar todos os testes e verificar a eficiência da tua solução.

Editar via GitHub A ligação abre numa nova janela ou separador
Elixir Exercism

Estás pronto para começar Terno pitagórico?

Inscreve-te no Exercism para aprenderes e dominares Elixir com 58 conceitos168 exercícios, e mentoria humana real, tudo grátis.