La cuerda de doce nudos
- O(n²) · Muy difícil
- Plan completo
- Python
- JavaScript
- ciclos
- operaciones
- listas
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):
passJavaScript
function triangulo(p) {
}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.