É do conhecimento antigo que todo número inteiro não negativo pode ser reescrito como a soma de quatro números inteiros ao quadrado. Por exemplo, o número 1 pode ser expresso como . Ou, em geral, para qualquer número inteiro não negativo , existem números inteiros tais que
Joseph-Louis Lagrange provou isso na década de 1700 e, portanto, costuma ser chamado de Teorema de Lagrange .
Isso às vezes é discutido em relação aos quaternions - um tipo de número descoberto por William Hamilton nos anos 1800, representado como
Rudolf Lipschitz estudou quaternions com apenas componentes inteiros, chamados quaternions Lipschitz. Usando quadrance, podemos imaginar que todo quaternário de Lipschitz pode ser considerado um amigo nos números inteiros. Por exemplo Quatérnion pode ser pensada como estando associadas com o número inteiro . Além disso, se recuarmos, todo número inteiro pode ser considerado como tendo um amigo nos quaternions de Lipschitz.
Mas há um detalhe interessante do teorema de Lagrange - a soma não é única. Cada número inteiro pode ter vários conjuntos diferentes de quatro quadrados que podem ser somados para criá-lo. Por exemplo, o número 1 pode ser expresso de quatro maneiras, usando números inteiros não negativos (consideremos não negativos para este desafio):
Os summands são sempre quadrados de 0 ou 1, mas podem estar em posições diferentes na expressão.
Para esse desafio, vamos também "classificar" nossas somas mais baixa para mais alta, para eliminar duplicatas, para que possamos considerar, para este exercício, que 1 só tem uma maneira de ser representada como a soma de quatro quadrados:
Outro exemplo é o número 42, que pode ser expresso de quatro maneiras (novamente, considerando apenas as negativas a, b, c, d e eliminando arranjos de componentes duplicados)
E se imaginarmos cada uma dessas maneiras diferentes de expressar um número inteiro como associadas a um quaternion específico? Então poderíamos dizer que o número 42 está associado a esses quatro quaternions:
Se imaginarmos a interpretação padrão de computação gráfica de um quaternion, onde , e são vetores no espaço euclidiano tridimensional e, portanto, os componentes , e do quaternion são coordenadas cartesianas tridimensionais , então podemos imaginar que cada inteiro, através desse processo de pensamento, pode ser associado a um conjunto de coordenadas tridimensionais no espaço. Por exemplo, o número 42 está associado às quatro coordenadas a seguir :
Isso pode ser pensado como uma nuvem de pontos ou um conjunto de pontos no espaço. Agora, uma coisa interessante sobre um conjunto de pontos finitos no espaço é que você sempre pode desenhar uma caixa delimitadora em torno deles - uma caixa grande o suficiente para caber em todos os pontos, mas não maior. Se você imaginar a caixa como uma caixa comum alinhada com os eixos , ela será chamada de caixa delimitadora alinhada ao eixo . A caixa delimitadora também possui um volume calculável determinando sua largura, comprimento e altura e multiplicando-os.
Podemos então imaginar o volume de uma caixa delimitadora para os pontos formados por nossos quaternions. Para o número inteiro 1, temos, usando os critérios deste exercício, um quaternion cuja quadrância é 1, . Esta é uma nuvem de pontos muito simples, possui apenas um ponto, portanto, a caixa delimitadora tem o volume 0. Para o número inteiro 42, no entanto, temos quatro quaternions e, portanto, quatro pontos, em torno dos quais podemos desenhar uma caixa delimitadora. O ponto mínimo da caixa é e o máximo é resultando em uma largura, comprimento e altura de 2, 2 e 2, resultando em um volume de 8.
Digamos que, para um número inteiro , o qvolume seja o volume da caixa delimitadora alinhada ao eixo de todos os pontos 3D formados por quaternions que possuem uma quadrante igual a , onde os componentes do quaternion são não negativos e .
Crie um programa ou função que, dado um número inteiro não negativo , produza o volume q de .
Exemplos:
input -> output
0 -> 0
1 -> 0
31 -> 4
32 -> 0
42 -> 8
137 -> 96
1729 -> 10032
Este é o código-golfe, o menor número de bytes ganha.