Definitionen
Euler-Phi-Funktion (AKA- Totientenfunktion ): Eine Funktion, die eine positive Zahl aufnimmt und die Anzahl positiver Zahlen zurückgibt, die kleiner sind als die angegebene Zahl, die mit der angegebenen Zahl gleichrangig sind. Es wird bezeichnet als
φ(n)
.Erreichbar Nummer : wenn es eine positive ganze Zahl vorhanden ,
x
so dassφ(x) == n
, dannn
ist erreichbar .
Aufgabe
Schreiben Sie eine Funktion / ein Programm, um festzustellen, ob eine bestimmte positive Ganzzahl erreichbar ist.
Eingang
Eine positive Zahl in jedem vernünftigen Format. Man kann davon ausgehen, dass die Anzahl innerhalb der Fähigkeiten der Sprache liegt. Unäre Eingabe wird akzeptiert.
Ausgabe
Zwei konsistente Werte, einer für erreichbare und der andere für nicht erreichbare Nummern. Die beiden Werte können beliebig sein, solange sie konsistent sind.
Testfälle
Die erreichbaren Nummern 100
sind:
1, 2, 4, 6, 8, 10, 12, 16, 18, 20, 22, 24, 28, 30, 32, 36, 40, 42, 44, 46, 48, 52, 54, 56, 58, 60, 64, 66, 70, 72, 78, 80, 82, 84, 88, 92, 96
( A002202 bei OEIS)
Regeln
Es gelten Standardlücken .
Gewinnkriterium
Das ist Code-Golf . Einreichung mit der niedrigsten Byteanzahl gewinnt.
Verweise
quelle
phi(n) = count { m : 1 <= m <= n AND (m,n) are coprime }
.. ist das wahr?Antworten:
Gelee ,
76 BytesNicht gerade schnell. Gibt 1 oder 0 zurück .
Probieren Sie es online!
Wie es funktioniert
quelle
Mathematica, 28 Bytes
Wie Dennis 'Jelly-Antwort berechnen wir die φ-Werte aller Zahlen bis zum Quadrat der Eingabe und prüfen, ob die Eingabe darin enthalten ist. Gibt zurück,
False
ob die Eingabe erreichbar ist undTrue
nicht. Ja, das ist verwirrend. AberFreeQ
ist ein Byte kürzer alsMatchQ
, und hey, die Spezifikation sagte zwei konsistente Werte> :)quelle
JavaScript (ES6),
9082 BytesRückgabe
0
odertrue
.Dies basiert auf der Annahme, dass x ≤ 2n ist , wenn x existiert . Wenn falsch erwiesen, soll dies verwenden aktualisiert werden statt (gleicher Größe, viel langsamer).
x=n*n
x=n*2
Ein Kantenfall ist n = 128 , für den comp (255) berechnet werden muss .
Demo
Code-Snippet anzeigen
quelle
n=2
,n=8
,n=128
,n=32768
undn=2147483648
.Axiom, 56 Bytes
Ich weiß nicht, ob es richtig ist ... Testcode und Ergebnisse
Der Bereich 1 .. (2 * x) wäre in Ordnung, bis Eingabe x = 500 ...
quelle
Pari / GP , 34 Bytes
Gibt zurück,
0
wenn erreichbar,1
wenn nicht.Probieren Sie es online!
quelle
05AB1E , 5 Bytes
Erläuterung:
Probieren Sie es online!
quelle
05AB1E ,
1312 BytesBEARBEITEN : Ein Byte wurde gespeichert, da die Eingabe wiederverwendet wird, wenn der Stapel nicht genügend Elemente enthält.
Gibt 1 aus, wenn erreichbar, 0, wenn nicht.
Setzt voraus, dass x ≤ 2n ist, falls vorhanden.
Probieren Sie es online!
Wie es funktioniert
quelle
C, 123 Bytes
Versuchen Sie es online
quelle