I numeri quadrati sono quelli che assumono la forma di n^2dove n è un numero intero. Questi sono anche chiamati quadrati perfetti, perché quando prendi la loro radice quadrata ottieni un numero intero.
I primi 10 numeri quadrati sono: ( OEIS )
0, 1, 4, 9, 16, 25, 36, 49, 64, 81
I numeri triangolari sono numeri che possono formare un triangolo equilatero. Il n-esimo numero del triangolo è uguale alla somma di tutti i numeri naturali da 1 a n.
I primi 10 numeri triangolari sono: ( OEIS )
0, 1, 3, 6, 10, 15, 21, 28, 36, 45
I numeri triangolari quadrati sono numeri quadrati e triangolari.
I primi 10 numeri triangolari quadrati sono: ( OEIS )
0, 1, 36, 1225, 41616, 1413721, 48024900, 1631432881, 55420693056, 1882672131025, 63955431761796
C'è un numero infinito di numeri quadrati, numeri triangolari e numeri triangolari quadrati.
Scrivi un programma o una funzione con nome che ha dato un numero di input (parametro o stdin) n, calcola il nnumero triangolare quadrato e lo restituisce / restituisce, dove n è un numero diverso da zero. (Per n = 1 ritorno 0)
Affinché il programma / funzione sia un invio valido, dovrebbe essere in grado di restituire almeno tutti i numeri di triangoli quadrati inferiori a 2 ^ 31-1.
indennità
-4 byte per essere in grado di produrre tutti i numeri triangolari quadrati inferiori a 2 ^ 63-1
-4 byte per poter teoricamente produrre numeri triangolari quadrati di qualsiasi dimensione.
+8 byte di penalità per soluzioni che richiedono tempo non polinomiale.
Stack di bonus.
Questa è una sfida di code-golf, quindi vince la risposta con il minor numero di byte.
npassaggi, e in ogni passaggio l'aritmetica impiega un tempo lineare perché il numero di cifre cresce linearmente n. Non penso che il tempo lineare sia possibile. A meno che tu non stia dicendo che le operazioni aritmetiche sono a tempo costante?
