Los números cuadrados son aquellos que toman la forma de n^2
donde n es un número entero. Estos también se llaman cuadrados perfectos, porque cuando tomas su raíz cuadrada obtienes un número entero.
Los primeros 10 números cuadrados son: ( OEIS )
0, 1, 4, 9, 16, 25, 36, 49, 64, 81
Los números triangulares son números que pueden formar un triángulo equilátero. El enésimo número de triángulo es igual a la suma de todos los números naturales del 1 al n.
Los primeros 10 números triangulares son: ( OEIS )
0, 1, 3, 6, 10, 15, 21, 28, 36, 45
Los números triangulares cuadrados son números que son cuadrados y triangulares.
Los primeros 10 números triangulares cuadrados son: ( OEIS )
0, 1, 36, 1225, 41616, 1413721, 48024900, 1631432881, 55420693056, 1882672131025, 63955431761796
Hay un número infinito de números cuadrados, números triangulares y números triangulares cuadrados.
Escriba un programa o función con nombre que, dado un número de entrada (parámetro o stdin) n
, calcule el n
número triangular cuadrado y lo emite / devuelve, donde n es un número positivo distinto de cero. (Para n = 1 devuelve 0)
Para que el programa / función sea una presentación válida, debe poder devolver al menos todos los números de triángulos cuadrados menores de 2 ^ 31-1.
Prima
-4 bytes para poder generar todos los números triangulares cuadrados menores que 2 ^ 63-1
-4 bytes para poder generar teóricamente números triangulares cuadrados de cualquier tamaño.
Penalización de +8 bytes para soluciones que toman tiempo no polinómico.
Bonus stack.
Este es un desafío de código de golf, por lo que gana la respuesta con la menor cantidad de bytes.
n
pasos, y en cada paso la aritmética toma tiempo lineal porque el número de dígitos crece linealmente n
. No creo que el tiempo lineal sea posible. A menos que esté diciendo que las operaciones aritméticas son de tiempo constante?