Quadratische Zahlen sind solche, bei n^2
denen 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 n
dreieckige 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.
n
Schritte 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?