Eine übergroße Zahl ist eine ganze Zahl n , die eine neue Obergrenze für ihr Verhältnis mit der Divisorsummenfunktion σ festlegt . Mit anderen Worten, n ist genau dann überreichlich, wenn für alle positiven ganzen Zahlen x , die kleiner als n sind :
Für einige der Werte:
n σ(n) σ(n)/n superabundant
1 1 1.0000 yes
2 3 1.5000 yes
3 4 1.3333 no
4 7 1.7500 yes
5 6 1.2000 no
6 12 2.0000 yes
7 8 1.1429 no
8 15 1.8750 no
9 13 1.4444 no
Eine längere Liste (für Testfälle) finden Sie unter OEIS A004394 .
Ein dringend empfohlener negativer Testfall (wenn Ihr Dolmetscher damit umgehen kann) ist 360360, da er mit der letzten übergroßen Zahl verknüpft ist.
Herausforderung
Ihr Programm sollte eine einzelne positive Ganzzahl aufnehmen und einen Wahrheits- oder Falschwert ausgeben, der angibt, ob diese Ganzzahl überreichlich ist.
Da es sich um Code-Golf , die kürzeste Antwort in Bytes gewinnt.
Æs÷$ÐṀ=
für 7 Bytes tun . Mir ist nicht klarÐṀ
geworden, dass das nützlich ist zu wissen.360360
. In der Tat war dies meine erste Version360360
?360360
ist die erste Zahl, für die es fehlschlagen würde (glaube ich), weil es die erste Zahl ist, die ein zuvor aufgetretenes Ergebnis ermittelt. (und unser Ergebnis wäre[0, 1]
)Haskell , 73 Bytes
-1 Byte danke an Herrn Xcoder. -7 Bytes dank Laikoni.
Probieren Sie es online!
Haskells Typensystem ist nicht sehr golfen ...
quelle
Haskell ,
646361 Bytes-1 Byte danke an Herrn Xcoder .
-2 Bytes dank Lynn .
Probieren Sie es online!
quelle
Oktave , 41 Bytes
Probieren Sie es online!
Erläuterung
quelle
J , 35 Bytes
Vielen Dank an Mr.Xcoder für das Auffinden des Problems und an cole für das Beheben des Problems!
Probieren Sie es online!
quelle
360360
(siehe Herausforderung für weitere Details: Ein sehr empfohlener negativer Testfall ist 360360, da er mit der letzten übergroßen Zahl verknüpft ist. ).#.~
viel (ehrlich gesagt ist die ganze Divisorsummenfunktion wirklich nett). Was übrigens falsch war, ist, dass der Gedanke, etwas zu tun,{:=>./
zwar klug ist, aber den "Größer als" -Teil der Frage nicht erfüllt.(1#.{:(]*0=|~)])\
. Irgendwas stimmt nicht, vielleicht hast du ein paar Gedanken?(1#.]*0=|~)1+i.
Es ist ein Haken und passt nicht so leicht an seinen Platz :)Julia 0,6 , 52 Bytes
Probieren Sie es online!
Diese Lösung verwendet rationale Zahlen, um bei Gleichheit die Richtigkeit zu gewährleisten. (Das Testen von 360360 dauerte fast 10 Minuten.)
Mit Gleitkomma können 2 Bytes mit der linken Teilung gespeichert werden:
quelle
Pyth , 14 Bytes
( FryAmTheEggman hat 1 Byte gespeichert)
Probieren Sie es hier aus! oder sehen Sie mehr Testfälle.
Nur meine obligatorische Pyth-Vorlage, die höchstwahrscheinlich golfen kann.
Wie?
quelle
05AB1E , 10 Bytes
Probieren Sie es online! oder als Testsuite
Erläuterung
quelle
360360
(siehe Herausforderung für weitere Details: Ein sehr empfohlener negativer Testfall ist 360360, da er mit der letzten überfüllten Zahl zusammenhängt. ).Python 3 , 77 Bytes
-1 Byte dank Rod. -3 Bytes dank Dennis.
Probieren Sie es online!
quelle
R mit
numbers
59 Bytesquelle
Mathematica,
5350 BytesFunktion pur. Nimmt eine Ganzzahl als Eingabe und gibt
True
oderFalse
als Ausgabe zurück.quelle
Tr@Divisors@#
funktionieren?Japt v2.0a0,
1216 BytesSchlafentzug im Gehirn scheint sich nicht weiter zu verbessern!
Returns
1
für truthy oder0
für Falsey.Versuch es
4 Bytes geopfert, um zu behandeln
360360
.Erläuterung
U
.Æ Ã
Erstellt ein Array von Ganzzahlen von0
bisU-1
und durchläuft jeweils die folgende Funktion alsX
.â
bekommt die Teiler vonU
.÷U
dividiert jeden von denen durchU
.x
summiert die Ergebnisse.Xâ
bekommt die Teiler vonX
.÷X
dividiert jeden von denen durchX
.x
summiert die Ergebnisse.>
prüft, ob das erste Ergebnis größer als das zweite ist.×
reduziert das resultierende Array von Booleschen Werten durch Multiplikation.quelle
360360
oder andere solche Ganzzahlen fehl : Ein sehr empfehlenswerter negativer Testfall (wenn Ihr Interpreter damit umgehen kann) ist 360360, da er mit der letzten überreichlichen ZahlAPL + WIN, 37 Bytes
Fordert zur Eingabe des Bildschirms auf.
quelle
C (gcc), 99 Bytes
Probieren Sie es online!
C 108 Bytes
Probieren Sie es online!
quelle
s
ein Float zurückgegeben werden?s(n)/n
mits(i)/i
.Schnell ,
120118 BytesAufgrund der impliziten Typdeklarationen in Swift dauert das Kompilieren einige Zeit (ungefähr 6 Sekunden bei TIO).
Probieren Sie es online!
quelle
Gelee , 12 Bytes
Probieren Sie es online! oder Finde alle überreichlichen Zahlen unter 1000.
weil ich Fließkomma hasse.
quelle
Funky , 79 Bytes
Erklärt
Dies definiert zuerst die Funktion,
d
die dieσ
Funktion ist, und dies ist die Golfversion vonWir können i auf 0 setzen, weil
i*n%0
es immer gleich0*...
ist0
.Die nächste Hälfte davon definiert die Funktion
f
, die Superabandunce-Funktion, und ist nur die Golfform vonUnd dies prüft nur, wie die Herausforderungsspezifikation nahelegt, dass alle Ganzzahlen von 1 bis n-1 einen
d(n)/n
Wert kleiner als die Eingabe haben.Probieren Sie es online!
quelle
APL (Dyalog) , 33 Bytes
Probieren Sie es online!
quelle
Schale , 9 Bytes
Probieren Sie es online! Zu langsam für den 360360-Testfall.
Erläuterung
quelle
£ü¤<§ṁ/ḊN
. Erstellen der gesamten Liste mit übergroßen ZahlenPerl 5, 84 Bytes
benötigt
-E
(kostenlos)eine unkomplizierte umsetzung der spezifikation, golfed
quelle
APL (NARS), 61 Zeichen, 122 Byte
11π ist die Funktionssumme der Faktoren
quelle