Os números quadrados são aqueles que assumem a forma de n^2
onde n é um número inteiro. Estes também são chamados quadrados perfeitos, porque quando você pega a raiz quadrada deles, obtém um número inteiro.
Os 10 primeiros números quadrados são: ( OEIS )
0, 1, 4, 9, 16, 25, 36, 49, 64, 81
Números triangulares são números que podem formar um triângulo equilátero. O n-ésimo número do triângulo é igual à soma de todos os números naturais de 1 a n.
Os 10 primeiros números triangulares são: ( OEIS )
0, 1, 3, 6, 10, 15, 21, 28, 36, 45
Números triangulares quadrados são números quadrados e triangulares.
Os primeiros 10 números triangulares quadrados são: ( OEIS )
0, 1, 36, 1225, 41616, 1413721, 48024900, 1631432881, 55420693056, 1882672131025, 63955431761796
Há um número infinito de números quadrados, números triangulares e números triangulares quadrados.
Escreva um programa ou função nomeada que forneça um número de entrada (parâmetro ou stdin) n
, calcule o n
número triangular quadrado th e o produz / retorna, onde n é um número diferente de zero positivo. (Para n = 1, retorne 0)
Para que o programa / função seja um envio válido, ele deve poder retornar pelo menos todos os números de triângulos quadrados menores que 2 ^ 31-1.
Bônus
-4 bytes por poder gerar todos os números triangulares quadrados menores que 2 ^ 63-1
-4 bytes por poder, teoricamente, produzir números triangulares quadrados de qualquer tamanho.
Penalidade de +8 bytes para soluções que levam tempo não polinomial.
Pilha de bônus.
Esse é o desafio do código-golfe, portanto, a resposta com o menor número de bytes vence.
n
etapas, e em cada etapa a aritmética leva tempo linear, porque o número de dígitos cresce linearmente n
. Não acho que o tempo linear seja possível. A menos que você esteja dizendo que operações aritméticas são tempo constante?