Unberührbare Zahlen α
Eine unberührbare Zahl ist eine positive ganze Zahl, die nicht als Summe aller richtigen Teiler einer positiven ganzen Zahl (einschließlich der unberührbaren Zahl selbst) ausgedrückt werden kann.
Zum Beispiel ist die Zahl 4 nicht unantastbar, da sie gleich der Summe der richtigen Teiler von 9: 1 + 3 = 4 ist. Die Zahl 5 ist unantastbar, da sie nicht die Summe der richtigen Teiler einer positiven ganzen Zahl ist. 5 = 1 + 4 ist die einzige Möglichkeit, 5 als Summe verschiedener positiver Ganzzahlen einschließlich 1 zu schreiben. Wenn 4 jedoch eine Zahl teilt, gilt dies auch für 2, sodass 1 + 4 nicht die Summe aller richtigen Teiler einer Zahl sein kann (seit Die Liste der Faktoren müsste sowohl 4 als auch 2 enthalten.
Es wird angenommen, dass die Zahl 5 die einzige unberührbare Zahl ist, aber dies wurde nicht bewiesen: Sie würde sich aus einer etwas stärkeren Version der Goldbach-Vermutung ergeben. β
Es gibt unendlich viele unantastbare Zahlen, eine Tatsache, die Paul Erdős bewiesen hat.
Einige Eigenschaften von Unberührbaren:
- Kein Unberührbarer ist 1 größer als eine Primzahl
- Kein Unberührbarer ist 3 größer als eine Primzahl, außer 5
- Kein Unberührbarer ist eine perfekte Zahl
- Bisher sind alle Unberührbaren außer 2 und 5 zusammengesetzt.
Zielsetzung
Erstellen Sie ein Programm oder eine Funktion , die eine natürliche Zahl n
über Standardeingabe- oder Funktionsparameter verwendet und die ersten n
unberührbaren Zahlen druckt .
Die Ausgabe muss zwischen den Zahlen getrennt sein, dies kann jedoch alles sein (z. B. Zeilenumbrüche, Kommas, Leerzeichen usw.).
Dies sollte zumindest funktionieren können 1 <= n <= 8153
. Dies basiert auf der Tatsache, dass die für den OEIS-Eintrag γ bereitgestellte b-Datei bis zu reicht n = 8153
.
Standardschlupflöcher sind wie üblich nicht zulässig.
Beispiel E / A.
1 -> 2
2 -> 2, 5
4 -> 2, 5, 52, 88
10 -> 2, 5, 52, 88, 96, 120, 124, 146, 162, 188
8153 -> 2, 5, 52, 88, 96, 120, ..., ..., ..., 59996
Dies ist Code-Golf , also gewinnt die geringste Anzahl von Bytes.
α - Wikipedia , β - MathWorld , γ - OEIS
Aus irgendeinem Grund wurde dies als Duplikat der Frage "Semiperfect Numbers finden" markiert, die Aufgaben sind jedoch völlig unterschiedlich. In diesem Fall müssen Sie überprüfen, ob keine Summe perfekter Teiler einer natürlichen Zahl einer bestimmten Zahl entsprechen kann.
Antworten:
Pyth, 21 Bytes
Warnung: Unglaublich langsam. Testlauf und Timing unten.
Es ist im Grunde genommen so brutal wie möglich und testet Faktorisierungen bis zur potenziellen einsamen Zahl im Quadrat plus eins.
quelle
C 104 Bytes
Es wird ein paar Minuten dauern für y > 20, aber was auch immer.
quelle
Java, 310 Bytes
Ich habe so gut ich konnte Golf gespielt, aber ich war mehr daran interessiert sicherzustellen, dass es in angemessener Zeit lief. Die unglofed Version ist wahrscheinlich interessanter
quelle
Los, 396 Bytes
Nicht wirklich Golf gespielt, aber es kann die gesamte erforderliche Reichweite erreichen. Läuft in ca. 20 Minuten und benötigt ca. 7 GB (unabhängig von n). Erstellt ein riesiges Array, um die Summe der Teiler für alle Zahlen bis zu 59997 im Quadrat zu berechnen.
quelle