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

Terno pitagórico

Médio

Introdução

Você tem fama de resolver problemas com maestria, conhecida pela habilidade de encarar os enigmas matemáticos mais desafiadores. Certa noite, você recebe uma carta urgente de um inventor chamado Triangle Tinkerer, que está trabalhando em um projeto novo e revolucionário. A carta diz:

Caro matemático,

Preciso da sua ajuda. Estou projetando um dispositivo que depende das 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 que funcione, preciso programá-lo com todos os ternos possíveis em que a soma de a, b e c seja igual a um número específico, N. Calcular esses ternos à mão levaria anos, mas ouvi dizer que você é mais do que capaz de dar conta da tarefa.

Não há tempo a perder. O futuro da minha invenção, e talvez até o futuro da inovação matemática, depende da sua capacidade de resolver este problema.

Com a importância da tarefa em mente, você parte em busca de todos os ternos pitagóricos que satisfazem a condição. Seu trabalho pode ter implicações de longo alcance, abrindo novas possibilidades na ciência e na engenharia. Você consegue encarar o desafio e entrar para a 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 N de entrada, encontre 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 mais testes deste exercício foram marcados com a tag :slow, porque podem demorar bastante para terminar. Por esse motivo, eles não serão executados na plataforma pelo executor de testes automatizado. Se você estiver resolvendo este exercício diretamente na plataforma, no editor web, talvez valha a pena baixar este exercício para a sua máquina. Assim, você poderá rodar todos os testes e verificar a eficiência da sua solução.

Editar via GitHub O link abre em uma nova janela ou aba
Elixir Exercism

Tudo pronto para começar Terno pitagórico?

Crie sua conta no Exercism para aprender e dominar Elixir com 58 conceitos168 exercícios e mentoria humana de verdade, tudo de graça.