Saltar al contenido

La cuerda de doce nudos

Enunciado

Hace cuatro mil años, los agrimensores de Egipto trazaban esquinas rectas con una cuerda de nudos. Con 12 tramos iguales armaban un triángulo de lados 3, 4 y 5, y el ángulo entre el 3 y el 4 salía recto.

Escribe una función que reciba p, un entero mayor que 0: los tramos de la cuerda. Regresa una lista [a, b, c] de enteros mayores que 0 con a < b < c, a + b + c == p y a*a + b*b == c*c. Si hay varias, la de a más chico. Si no hay ninguna, regresa la lista vacía [].

Con 12 la respuesta es [3, 4, 5]: suman 12, y 9 + 16 = 25. Con 60 hay dos, [10, 24, 26] y [15, 20, 25]; gana [10, 24, 26], que empieza en 10. Con 7 no hay ninguna y regresas [].

Ejemplos

  • La cuerda de doce

    12 → [3, 4, 5]

  • Treinta tramos

    30 → [5, 12, 13]

  • El de doce, al doble

    24 → [6, 8, 10]

  • Siete no alcanza

    7 → []

Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.

Empiezas con esto

Python

def triangulo(p):
    pass

JavaScript

function triangulo(p) {
}
Resolver este reto

Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.

Más retos de O(n²)

Ver todos los retos →