Herausforderung
Bei einer gegebenen Ganzzahl gibt n als Eingabe 0 <= n <= 2^10
die n-te gerade perfekte Zahl aus.
Perfekte Zahlen
Eine perfekte Zahl ist eine Zahl x, bei der die Summe ihrer Faktoren (ohne sich selbst) gleich x ist. Zum Beispiel 6:
6: 1, 2, 3, 6
Und natürlich ist 1 + 2 + 3 = 6
6 auch perfekt.
Wenn eine perfekte Zahl x
ist gerade x mod 2 = 0
.
Beispiele
Das Folgende sind die ersten 10 geraden perfekten Zahlen:
6
28
496
8128
33550336
8589869056
137438691328
2305843008139952128
2658455991569831744654692615953842176
191561942608236107294793378084303638130997321548169216
Beachten Sie, dass Sie dies indizieren können, wie Sie möchten: 6 kann die 1. oder 0. gerade perfekte Zahl sein.
Gewinnen
Kürzester Code in Bytes gewinnt.
Antworten:
Gelee , 7 Bytes
Probieren Sie es online!
Wie es funktioniert
quelle
Mathematica, 13 Bytes
Es ist nicht überraschend, dass es einen eingebauten gibt.
Beispiel:
quelle
MATL , 15 Bytes
Sehr langsam. Es wird versucht, die Zahlen nacheinander bis zum n zu erhöhen te perfekte Zahl gefunden ist.
Probieren Sie es online!
Erläuterung
quelle
Pyth , 13 Bytes
Probieren Sie es online!
Bitte versuchen Sie keine höhere Nummer. Es werden nur die geraden Zahlen nacheinander getestet.
quelle
05AB1E , 8 Bytes
Probieren Sie es online!
Erläuterung
quelle
Python 2 ,
198 153 83 78 77 7574 BytesProbieren Sie es online!
Jetzt liest es sich wie Pseudocode.
Gespeichert
45Unzählige Bytes weil @Leaky Nun hat mich gelehrt , über die Summenfunktion und Liste Verständnis.2 Bytes gespart dank @ shooqies Vorschlag, die unnötigen Klammern zu entfernen.
Wir durchlaufen einfach jede gerade Zahl, bis wir n perfekte Zahlen gefunden haben.
quelle
g
ist eigentlich nursum
.f
Verständnis durch eine Liste ersetztk
, nur dekrementiereni
.PHP, 111 Bytes
0-Indizierung
Arbeitet mit dem Konzept, dass eine perfekte Zahl eine Zahl ist, bei der
n=x*y
x=2^i
undy=2^(i+1)-1
und y Primzahlen sein müssenProbieren Sie es online!
quelle
Python 3 , 69 Bytes
Probieren Sie es online!
quelle
Scala, 103 Bytes
quelle
Haskell, 61 Bytes
quelle
||x==1
. Sie können auch Bytes sparen, indem Sie die!!
Zeichen vor der schließenden Klammer verschieben, um einen Operatorabschnitt zu erstellen, und die Zeichenfilter
durch ein anderes Listenverständnis ersetzen .JavaScript (ES6), 68 Byte
Code-Snippet anzeigen
quelle
Perl 6 , 42 Bytes
Der Eingabeindex ist 1-basiert.
quelle
Clojure, 79 Bytes
Nach der Spezifikation, starke Beanspruchung des For-
:when
Zustandes.quelle