Rutas
/
JavaScript
JavaScript
/
Ejercicios
/
Terna pitagórica
Terna pitagórica

Terna pitagórica

Media

Introducción

Eres un experto en resolver problemas, conocido por tu capacidad de abordar los acertijos matemáticos más difíciles. Una tarde, recibes una carta urgente de un inventor llamado Triangle Tinkerer, que trabaja en un nuevo proyecto revolucionario. La carta dice:

Querido matemático:

Necesito tu ayuda. Estoy diseñando un dispositivo que depende de las propiedades únicas de los triples 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 tengo que programarlo con todos los triples posibles en los que la suma de a, b y c sea igual a un número concreto, N. Calcular estos triples a mano me llevaría años, pero tengo entendido que tú eres más que capaz de hacerlo.

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

Motivado por la importancia de la tarea, te propones encontrar todos los triples pitagóricos que cumplen la condición. Tu trabajo podría tener implicaciones de gran alcance y abrir nuevas posibilidades en la ciencia y la ingeniería. ¿Serás capaz de estar a la altura del reto y hacer historia?

Instrucciones

Una terna pitagórica es un conjunto de tres números naturales, {a, b, c}, que cumple lo siguiente:

a² + b² = c²

y además,

a < b < c

Por ejemplo,

3² + 4² = 5².

Dado un número entero de entrada N, encuentra todas las ternas pitagóricas para las que a + b + c = N.

Por ejemplo, con N = 1000, hay exactamente una terna pitagórica para la que a + b + c = 1000: {200, 375, 425}.

Implementación

De forma predeterminada, a la función triplets solo se le pasa sum, pero también puede recibir opcionalmente minFactor y/o maxFactor. Cuando se pasan, asegúrate de que cada factor de la terna sea al menos minFactor y como máximo maxFactor.

Advanced

Si resuelves este ejercicio con la CLI, hay un caso de prueba con números grandes que actualmente está omitido para evitar que se agote el tiempo en nuestro ejecutor de pruebas. Puedes activarlo si quieres eliminando el .skip, pero ten en cuenta que puede tardar un rato en ejecutarse.

Editar en GitHub El enlace se abre en una ventana o pestaña nueva
JavaScript Exercism

¿Listo para empezar Terna pitagórica?

Regístrate en Exercism para aprender y dominar JavaScript con 37 conceptos159 ejercicios y mentoría humana real, todo gratis.