Quadratische Zahlen sind solche, bei n^2denen n eine ganze Zahl ist. Diese werden auch als perfekte Quadrate bezeichnet, da Sie eine ganze Zahl erhalten, wenn Sie ihre Quadratwurzel ziehen.
Die ersten 10 Quadratzahlen sind: ( OEIS )
0, 1, 4, 9, 16, 25, 36, 49, 64, 81
Dreieckszahlen sind Zahlen, die ein gleichseitiges Dreieck bilden können. Die n-te Dreieckszahl ist gleich der Summe aller natürlichen Zahlen von 1 bis n.
Die ersten 10 Dreieckszahlen sind: ( OEIS )
0, 1, 3, 6, 10, 15, 21, 28, 36, 45
Quadratische Dreieckszahlen sind Zahlen, die sowohl quadratisch als auch dreieckig sind.
Die ersten 10 quadratischen Dreieckszahlen sind: ( OEIS )
0, 1, 36, 1225, 41616, 1413721, 48024900, 1631432881, 55420693056, 1882672131025, 63955431761796
Es gibt unendlich viele quadratische Zahlen, Dreieckszahlen und quadratische Dreieckszahlen.
Schreiben Sie ein Programm oder eine benannte Funktion, die eine Eingabe- (Parameter- oder Standard-) Nummer angibt n, die ndreieckige Zahl im Quadrat berechnet und ausgibt / zurückgibt, wobei n eine positive Zahl ungleich Null ist. (Für n = 1 0 zurückgeben)
Damit das Programm / die Funktion eine gültige Übermittlung ist, sollte es in der Lage sein, mindestens alle quadratischen Dreieckszahlen zurückzugeben, die kleiner als 2 ^ 31-1 sind.
Bonus
-4 Bytes für die Ausgabe aller quadratischen Dreieckszahlen kleiner als 2 ^ 63-1
-4 Bytes, um theoretisch quadratische Dreieckszahlen beliebiger Größe ausgeben zu können.
+8 Byte Strafe für Lösungen, die nicht polynomielle Zeit benötigen.
Bonusstapel.
Dies ist eine Code-Golf-Herausforderung, daher gewinnt die Antwort mit den wenigsten Bytes.
nSchritte gibt, und in jedem Schritt nimmt die Arithmetik lineare Zeit in Anspruch, weil die Anzahl der Ziffern linear wächst n. Ich denke nicht, dass lineare Zeit möglich ist. Es sei denn, Sie sagen, arithmetische Operationen sind konstante Zeit?
