Les nombres carrés sont ceux qui prennent la forme n^2
où n est un entier. Ils sont également appelés carrés parfaits, car lorsque vous prenez leur racine carrée, vous obtenez un entier.
Les 10 premiers nombres carrés sont: ( OEIS )
0, 1, 4, 9, 16, 25, 36, 49, 64, 81
Les nombres triangulaires sont des nombres qui peuvent former un triangle équilatéral. Le n-ème nombre de triangle est égal à la somme de tous les nombres naturels de 1 à n.
Les 10 premiers nombres triangulaires sont: ( OEIS )
0, 1, 3, 6, 10, 15, 21, 28, 36, 45
Les nombres triangulaires carrés sont des nombres à la fois carrés et triangulaires.
Les 10 premiers nombres triangulaires carrés sont: ( OEIS )
0, 1, 36, 1225, 41616, 1413721, 48024900, 1631432881, 55420693056, 1882672131025, 63955431761796
Il existe un nombre infini de nombres carrés, de nombres triangulaires et de nombres triangulaires carrés.
Écrivez un programme ou une fonction nommée qui a donné un numéro d'entrée (paramètre ou stdin) n
, calcule le n
numéro triangulaire carré et le renvoie / le retourne, où n est un nombre positif non nul. (Pour n = 1, retournez 0)
Pour que le programme / la fonction soit une soumission valide, il doit être en mesure de renvoyer au moins tous les nombres triangulaires carrés inférieurs à 2 ^ 31-1.
Prime
-4 octets pour pouvoir sortir tous les nombres triangulaires carrés inférieurs à 2 ^ 63-1
-4 octets pour pouvoir théoriquement sortir des nombres triangulaires carrés de n'importe quelle taille.
Pénalité de +8 octets pour les solutions qui prennent du temps non polynomial.
Pile de bonus.
C'est un défi de code-golf, donc la réponse avec le moins d'octets l'emporte.
n
étapes, et à chaque étape l'arithmétique prend du temps linéaire parce que le nombre de chiffres croît linéairement n
. Je ne pense pas que le temps linéaire soit possible. À moins que vous ne disiez que les opérations arithmétiques sont à temps constant?