Es un conocimiento antiguo que cada entero no negativo puede reescribirse como la suma de cuatro enteros al cuadrado. Por ejemplo, el número 1 se puede expresar como . O, en general, para cualquier número entero no negativo , existen números enteros tales que
Joseph-Louis Lagrange demostró esto en la década de 1700 y, por lo tanto, a menudo se le llama Teorema de Lagrange .
Esto a veces se discute en relación con los cuaterniones: un tipo de número descubierto por William Hamilton en el siglo XIX, representado como donde son números reales, y y son unidades imaginarias distintas que no se multiplican conmutativamente. Específicamente, se discute en relación con la cuadratura de cada componente del cuaternión Esta cantidad a veces se llama norma, o norma al cuadrado , o también cuadrante . Algunas pruebas modernas del Teorema de Lagrange usan cuaterniones.
Rudolf Lipschitz estudió cuaterniones con solo componentes enteros, llamados cuaterniones Lipschitz. Usando quadrance, podemos imaginar que se puede pensar que cada cuaternión de Lipschitz tiene un amigo en los enteros. Por ejemplo, se puede considerar que quaternion está asociado con el entero . Además, si retrocedemos, se puede pensar que cada número entero tiene un amigo en los cuaterniones de Lipschitz.
Pero hay un detalle interesante del teorema de Lagrange: la suma no es única. Cada número entero puede tener varios conjuntos diferentes de cuatro cuadrados que se pueden sumar para crearlo. Por ejemplo, el número 1 se puede expresar de 4 maneras usando enteros no negativos (consideremos solo no negativos para este desafío):
Los sumandos son siempre cuadrados de 0 o 1, pero pueden estar en diferentes posiciones en la expresión.
Para este desafío, también "clasifiquemos" nuestros sumandos de menor a mayor, para eliminar duplicados, de modo que podamos considerar, para este ejercicio, que 1 solo tiene una forma de ser representado como la suma de cuatro cuadrados:
Otro ejemplo es el número 42, que se puede expresar de cuatro maneras (de nuevo, solo teniendo en cuenta a, b, c, d no negativo y eliminando arreglos de componentes duplicados)
¿Qué pasa si imaginamos que cada una de estas diferentes formas de expresar un número entero está asociada a un cuaternión específico? Entonces podríamos decir que el número 42 está asociado con estos cuatro cuaterniones:
Si imaginamos la interpretación gráfica de computadora estándar de un cuaternión, donde , y son vectores en el espacio euclidiano tridimensional , y entonces los componentes , y del cuaternión son coordenadas cartesianas tridimensionales , entonces podemos imaginar que cada uno entero, a través de este proceso de pensamiento, puede asociarse con un conjunto de coordenadas tridimensionales en el espacio. Por ejemplo, el número 42 está asociado con las siguientes cuatro coordenadas :
Esto puede considerarse como una nube de puntos o un conjunto de puntos en el espacio. Ahora, una cosa interesante sobre un conjunto de puntos finitos en el espacio es que siempre puedes dibujar un cuadro delimitador mínimo a su alrededor, un cuadro que sea lo suficientemente grande como para caber todos los puntos, pero no más grande. Si imagina que el cuadro es un cuadro ordinario alineado con los ejes , se llama un cuadro delimitador alineado con el eje . El cuadro delimitador también tiene un volumen, calculable determinando su ancho, largo y alto, y multiplicándolos juntos.
Entonces podemos imaginar el volumen de un cuadro delimitador para los puntos formados por nuestros cuaterniones. Para el número entero 1, tenemos, usando los criterios de este ejercicio, un cuaternión cuyo cuadrante es 1, . Esta es una nube de puntos muy simple, solo tiene un punto, por lo que su cuadro delimitador tiene el volumen 0. Sin embargo, para el número entero 42 tenemos cuatro cuaterniones, y así cuatro puntos, alrededor de los cuales podemos dibujar un cuadro delimitador. El punto mínimo de la caja es y el máximo es resultando en un ancho, largo y alto de 2, 2 y 2, dando un volumen de 8.
Digamos que para un número entero , el volumen q es el volumen del cuadro delimitador alineado con el eje de todos los puntos 3D formados por cuaterniones que tienen un cuadrante igual a , donde las componentes del cuaternión no son negativos y .
Cree un programa o función que, dado un número entero no negativo , generará el volumen q de .
Ejemplos:
input -> output
0 -> 0
1 -> 0
31 -> 4
32 -> 0
42 -> 8
137 -> 96
1729 -> 10032
Este es el código de golf, gana el menor número de bytes.