Tracks
/
Python
Python
/
Ejercicios
/
Terna pitagórica
Terna pitagórica

Terna pitagórica

Fácil

Introducción

Eres una persona muy hábil resolviendo problemas, y se te conoce por tu capacidad de enfrentarte a los acertijos matemáticos más difíciles. Una noche recibes una carta urgente de un inventor llamado Triangle Tinkerer, que está trabajando en un proyecto nuevo y revolucionario. La carta dice:

Estimado matemático:

Necesito tu ayuda. Estoy diseñando un dispositivo que depende de las propiedades únicas de los tripletes pitagóricos, conjuntos de tres números enteros que satisfacen la ecuación a² + b² = c². Este dispositivo revolucionará la navegación, pero para que funcione, debo programarlo con cada triplete posible en el que la suma de a, b y c sea igual a un número específico, N. Calcular estos tripletes a mano me tomaría años, pero tengo entendido que eres más que capaz de asumir la tarea.

El tiempo apremia. El futuro de mi invento, y quizá incluso el futuro de la innovación matemática, depende de tu capacidad de resolver este problema.

La importancia de la tarea te motiva, así que te propones encontrar todos los tripletes pitagóricos que cumplen la condición. Tu trabajo podría tener consecuencias de gran alcance y abrir nuevas posibilidades en la ciencia y la ingeniería. ¿Puedes estar a la altura del desafío y hacer historia?

Instrucciones

Un triplete pitagórico es un conjunto de tres números naturales, {a, b, c}, para el que

a² + b² = c²

y tal que

a < b < c

Por ejemplo,

3² + 4² = 5².

Dado un número entero de entrada N, encuentra todos los tripletes pitagóricos para los que a + b + c = N.

Por ejemplo, con N = 1000, hay exactamente un triplete pitagórico para el que a + b + c = 1000: {200, 375, 425}.

Note

La descripción anterior menciona conjuntos matemáticos, pero también que una tripleta pitagórica {a, b, c} debe estar ordenada de manera que a < b < c (orden ascendente).

Esto hace que el tipo set de Python no sea adecuado para este ejercicio, ya que es inherentemente desordenado. En su lugar, deberías devolver una list de lists (p. ej. [[a, b, c]]). Puedes generar las tripletas en el orden que quieras, ya que el orden de la list que las contiene se ignorará en las pruebas.

Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Python Exercism

¿Todo listo para empezar Terna pitagórica?

Regístrate en Exercism para aprender y dominar Python con 17 conceptos146 ejercicios y mentoría humana real, todo gratis.