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

Terno pitagórico

Fácil

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}.

Note

A descrição acima menciona conjuntos matemáticos, mas também que um terno pitagórico {a, b, c} precisa estar ordenado de forma que a < b < c (ordem crescente).

Isso torna o tipo set do Python inadequado para este exercício, já que ele é, por natureza, não ordenado. Em vez disso, você deve retornar uma list de lists (por exemplo, [[a, b, c]]). Você pode gerar os ternos na ordem que quiser, já que a ordem da list externa será ignorada nos testes.

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

Tudo pronto para começar Terno pitagórico?

Crie sua conta no Exercism para aprender e dominar Python com 17 conceitos146 exercícios e mentoria humana de verdade, tudo de graça.