Percursos
/
Go
Go
/
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}.

Notas de implementação

Range deve devolver uma lista de todos os ternos pitagóricos com lados no intervalo de min a max, inclusive.

Sum deve devolver uma lista de todos os ternos pitagóricos em que a soma a+b+c (o perímetro) é igual a p. Os três elementos de cada terno devolvido têm de estar por ordem, t[0] <= t[1] <= t[2], e a lista de ternos tem de estar em ordem lexicográfica.

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

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

Inscreve-te no Exercism para aprenderes e dominares Go com 34 conceitos165 exercícios, e mentoria humana real, tudo grátis.