Eine automorphe Zahl ist eine Zahl, die ein Suffix ihres Quadrats in der Basis 10 ist. Dies ist die Sequenz A003226 im OEIS.
Deine Aufgabe:
Schreiben Sie ein Programm oder eine Funktion, um festzustellen, ob eine Eingabe eine automorphe Zahl ist.
Eingang:
Eine ganze Zahl zwischen 0 und 10 ^ 12 (einschließlich), die eine automorphe Zahl sein kann oder nicht.
Ausgabe:
Ein wahrer / falscher Wert, der angibt, ob die Eingabe eine automorphe Zahl ist oder nicht.
Beispiele:
0 -> truthy
1 -> truthy
2 -> falsy
9376 -> truthy
8212890625 -> truthy
Wertung:
Dies ist Code-Golf , die niedrigste Punktzahl in Bytes gewinnt.
code-golf
number
decision-problem
Gryphon - Setzen Sie Monica wieder ein
quelle
quelle
Antworten:
Brachylog , 5 Bytes
Probieren Sie es online!
Wie es funktioniert
quelle
√a₁?
Warum nicht?Python 2 , 24 Bytes
Probieren Sie es online!
Zum ersten Mal in der Geschichte ist das Anhängen von
L
an den Repräsentanten von Longs in Python 2 eher ein Feature als ein Bug.Die Idee ist, zu überprüfen, ob "say" "
76^2=5776
endet",76
indem überprüft wird, ob76L
es sich um eine Teilzeichenfolge von "" handelt5776L
. Um dasL
Auftreten von nicht sehr großen Zahlen zu ermöglichen, multiplizieren wir mit1L
oder haben es2L
als Exponenten, da eine arithmetische Operation mit einem Long mit einem Long ergibt.quelle
Python 2 , 31 Bytes
Von xnor out-golfed ... (dies passiert jedes Mal)> <Aber hey, es ist überraschend pythonisch für Code-Golf .
Die Leute neigen nicht dazu, sich zu erinnern, dass Python
str.endswith()
...Probieren Sie es online!
quelle
`n*n`
, um eine Zahl in einen String umzuwandeln?05AB1E , 5 Bytes
Probieren Sie es online!
quelle
n
ist quadratisch,.s
ist Suffixe,¹
ist die Eingabe undå
testet auf Mitgliedschaft @isaacgRetina , 44 Bytes
Probieren Sie es online!
Es gibt genau 4 Lösungen für die 10-adische Gleichung
x*x = x
.quelle
5*5 != 5
. Sie können jedoch ein Muster in den Nummern bemerken, mit denen Sie verknüpft sind. Die 4 Lösungen sind: 0, 1, ... 59918212890625, ... 40081787109376 (p-adische Zahlen gehen unendlich nach links ). Die von Ihnen verknüpften Nummern sind Suffixe der 4 Nummern.Alice , 17 Bytes
Probieren Sie es online!
Gibt nichts aus (was im Ordinal-Modus falsch ist) oder
Jabberwocky
(was im Ordinal-Modus nicht leer und daher wahr ist; es ist auch der kanonische Wahrheitswert).Erläuterung
Dies ist eine geringfügige Änderung des allgemeinen Rahmens für Programme im linearen Ordinalmodus. Das
/
in der Mitte wird verwendet, um einen einzelnen Operator im Kardinalmodus zwischen (dem*
) zu haben, und dann müssen wir#
ihn auf dem Rückweg im Ordinalmodus überspringen. Das lineare Programm lautet dann:Lassen Sie uns das durchgehen:
quelle
Mathematica, 31 Bytes
Probieren Sie es online! Mathematik druckt eine zusätzliche Nachricht, aber die Antwort ist richtig
quelle
Python 2,
37333029 Bytes4 Bytes dank @LeakyNun gespart. Es wurden 3 Byte gespart, indem festgestellt wurde, dass die Eingabe niedriger als 10 ^ 12 ist, sodass das
n
Zeichen nicht mit einem "L" endet. Dank @Dennis 1 Byte gespart, da ich überhaupt nicht gezählt habe.Probieren Sie es online! (TIO Link mit freundlicher Genehmigung von @Dennis).
quelle
C (gcc) , 57 Bytes
Basierend auf der Antwort von @ betseg ist dies eine Funktion, die 1 oder 0 zurückgibt . Es erzeugt eine Garbage-Ausgabe an STDOUT, die standardmäßig zulässig ist .
Die Punktzahl enthält +4 Bytes für das Compiler-Flag
-lm
.Probieren Sie es online!
quelle
Ruby, 22 Bytes
Probieren Sie es online!
quelle
C # (.NET Core) , 47 Byte
Probieren Sie es online!
quelle
$"{n}"
zun+""
? Könnten Sie vielleicht auch einen TryItOnline-Link hinzufügen ? Oh, und das ist ein Ausschnitt, keine Funktion / Programm. Also sollten Sien=>
davor hinzufügen .n+""
. Vielen Dank!bool f(long n)
Für Lambda-Antworten in C #, Java usw.n=>$"{BigInteger.Multiply(n,n)}".EndsWith(n+"")
ist das oder das nachgestellte Semikolon nicht erforderlich . :) Und ich hätte es fast vergessen: Willkommen bei PPCG!n=>
mit einemSystem.Func
.Kohle ,
1211 BytesProbieren Sie es online!
Gibt
False
alsfalsey
undTrue
als zurücktruthy
.Power
Funktion verpassen ?)quelle
0
für10
,100
, ...1
für50
,60
...2
für760
,3792
...JavaScript (ES6), 23 Byte
Versuch es
Schrieb dieses Snippet auf mein Handy, bitte bearbeite es, wenn es nicht richtig funktioniert.
quelle
Gelee , 6 Bytes
Probieren Sie es online!
quelle
Ị
...Kotlin, 36 Bytes
quelle
C, 77 + 4 (
-lm
) = 81 BytesProbieren Sie es online!
quelle
n*n
fürpow(n,2)
und 5 Bytes speichern.R, 28 Bytes
Erzeugt eine Funktion:
Nimmt den Modul von
x^2
so, dass wir die letzten Ziffern behalten, mit denen wir vergleichenx
.quelle
Perl 5 , 15 + 1 (-p) = 16 Bytes
Probieren Sie es online!
quelle
Gelee , 7 Bytes
Probieren Sie es online!
Positive Zahl für Ja, 0 für Nein.
quelle
Retina ,
4733 Bytes14 Bytes dank Martin Ender.
Probieren Sie es online!
quelle
$%
...PHP , 41 Bytes
PHP Sandbox Online
PHP , 42 Bytes
ohne Regex
PHP , 44 Bytes
Verwenden Sie den Abstand levenshtein
quelle
Dyvil , 26 Bytes
Verwendung:
quelle
Batch, 122 Bytes
Der Algorithmus ist nur durch den für Variablen verwendeten Integer-Typ begrenzt. Im Fall von Batch sind dies vorzeichenbehaftete 32-Bit-Ganzzahlen, das Maximum ist also 2147483647. Testet sowohl n als auch n-1 auf die erforderlichen Potenzen von 2 und 5 als Faktoren. (Außer wenn n 0 oder 1 ist, haben n und n-1 jeweils einen Faktor.)
quelle
> <> 30 Bytes
Probieren Sie es online aus oder schauen Sie es sich auf dem Fischspielplatz an !
Angenommen, die Eingabenummer x befindet sich bereits auf dem Stapel.
Erklärung: Der Fisch nimmt den Quotienten von x 2, indem er die Potenzen von 10 erhöht, und zählt, wie oft dies x entspricht . Wenn die Potenz von 10 größer als x wird , wird die Zählung gedruckt und angehalten. Die Zählung ist 1, wenn x automorph ist, und 0, wenn dies nicht der Fall ist.
quelle
Pari / GP , 23 Bytes
Probieren Sie es online!
quelle
Pyth ,
109 Bytes-1 Byte dank isaacg .
Gibt 0 zurück, wenn die Zahl automorph ist, andernfalls.
Online testen!
Erklärungen
quelle
`
wird in einen String konvertiert.Rexx (Regina) , 48 Bytes
Probieren Sie es online!
quelle
Perl 6 , 15 Bytes
Probieren Sie es online!
Gibt ein wahrheitsgemäßes Match-Objekt für automorphe Eingaben und einen falschen Nil-Wert für andere Zahlen zurück.
quelle
Clojure, 59 Bytes
Dies scheint zu ausführlich.
quelle
#(.endsWith(str(* % %))(str %))
?MATL , 10 Bytes
Dies funktioniert
floor(sqrt(2^53))
gemäßdouble
Genauigkeitsbeschränkungen für Zahlen bis zu .Die Ausgabe ist eine positive Zahl (die wahr ist), wenn sie automorph ist, oder eine leere Zahl (die falsch ist), wenn nicht.
Probieren Sie es online!
Erläuterung
Es ist komisch, dass diese Antwort die beiden überladenen Versionen von verwendet
U
: Mit der Zeichenfolgeneingabe wird eine Zahl ausgewertet und mit der Zahleneingabe wird das Quadrat berechnet.quelle