JE Maxfield hat folgenden Satz bewiesen (siehe DOI: 10.2307 / 2688966 ):
Wenn eine positive ganze Zahl mit Ziffern ist, gibt es eine positive ganze Zahl so dass die ersten Ziffern von bildet die ganze Zahl .
Herausforderung
Ihre Herausforderung ist gegeben, einige finden eine entsprechende .
Einzelheiten
- repräsentiert die Fakultät von .
- Die Ziffern von in unserem Fall als Basis verstehen .
- Ihre Einreichung sollte für beliebige funktionieren, vorausgesetzt , Sie haben genügend Zeit und Speicher. Es reicht nicht aus, beispielsweise 32-Bit-Typen zur Darstellung von Ganzzahlen zu verwenden.
- Sie müssen nicht unbedingt ausgeben müssen , die am wenigsten möglich .
Beispiele
A N
1 1
2 2
3 9
4 8
5 7
6 3
7 6
9 96
12 5
16 89
17 69
18 76
19 63
24 4
72 6
841 12745
206591378 314
Das kleinstmögliche für jedes finden Sie unter https://oeis.org/A076219
Antworten:
Python 2 , 50 Bytes
Probieren Sie es online!
Dies ist eine Variation der unten erläuterten 47-Byte-Lösung, die angepasst wurde, um
1
zur Eingabe zurückzukehren'1'
. (Wir addieren also1
eher den vollständigen Ausdruck als den rekursiven Aufruf und beginnen mit dem Zählenn==2
, um eine Tiefenebene zu entfernen und das Ergebnis für alle Nichteingaben'1'
auszugleichen.)Python 2 , 45 Bytes (Karten 1 bis
True
)Dies ist eine weitere Variante von @Jo King und @xnor, die Eingaben als Zahl akzeptiert und
True
zur Eingabe zurückgibt1
. Einige Leute denken, dass dies ein faires Spiel ist, aber ich persönlich finde es ein bisschen komisch.Aber es kostet nur 3 Bytes, um das icky Boolesche Ergebnis zu verpacken
+()
, was uns eine kürzere "nette" Lösung gibt:Python 2 , 48 Bytes
quelle
+1
sowieso ein paar Bytes erspart.a
Angabe einer Zahl verkürzen .-a
in-p
``, das ist ein ordentlicher Trick :)Brachylog ,
35 BytesProbieren Sie es online!
Übernimmt die Eingabe über die Ausgabevariable und die Ausgabe über die Eingabevariable. (Umgekehrt werden nur beliebige Präfixe der Fakultät der Eingabe gefunden, was nicht ganz so interessant ist.) Zeitüberschreitung beim vorletzten Testfall für TIO, aber beim letzten . Ich habe es zum Zeitpunkt des Schreibens einige Minuten auf meinem Laptop auf 841 ausgeführt und es hat noch keine Antwort ausgespuckt, aber ich glaube daran.
Da die einzige Eingabe
ḟa₀
für 1 nicht funktioniert, ist 1 ein positives Präfix von 1! = 11|ḟa₀
funktioniert genauso gut.Außerdem wurde 841 seit fast drei Stunden ausgeführt und es wurde immer noch keine Ausgabe erstellt. Ich denke, die Fakultät jeder ganzen Zahl von 1 bis 12745 zu berechnen, ist nicht gerade schnell.
quelle
C ++ (gcc) ,
10795 Bytes mit-lgmp
und-lgmpxx
Vielen Dank an die Leute in den Kommentaren für den Hinweis auf ein paar dumme Pannen.
Probieren Sie es online!
Berechnetn ! durch Multiplikation ( n - 1 ) ! durch n , dividiert es dann wiederholt durch 10 bis es nicht mehr größer als die übergebene ganze Zahl ist. An diesem Punkt wird die Schleife beendet, wenn die Fakultät gleich der übergebenen Ganzzahl ist, oder fährt andernfalls mit dem nächsten n .
quelle
107
Bytes.return
?Gelee , 8 Bytes
Probieren Sie es online!
Nimmt eine Ganzzahl und gibt einen Singleton zurück.
quelle
05AB1E , 7 Bytes
Probieren Sie es online aus oder überprüfen Sie fast alle Testfälle ( Timeout
841
, ist also ausgeschlossen).Erläuterung:
quelle
Pyth - 8 Bytes
Probieren Sie es online aus .
quelle
JavaScript,
4743 BytesAusgabe als BigInt.
Probieren Sie es online!
Ein paar Bytes gespart, indem Lynn versucht hat, die Fakultät zu "bauen", anstatt sie bei jeder Iteration zu berechnen. Stimmen Sie also auch ihrer Lösung zu, wenn Sie diese unterstützen.
quelle
_Ês bU}f1
funktioniert in Japt nichts
.1
wenn zurückgegeben werden0
kannn=1
.x=i=1n;f=n=>`${x*=++i}`.search(n)?f(n):i
C # (.NET Core) , 69 + 22 = 91 Byte
Probieren Sie es online!
Verwendet,
System.Numerics.BigInteger
die eineusing
Aussage erfordert .-1 Byte dank @ExpiredData!
quelle
Gelee , 16 Bytes
Probieren Sie es online!
Erläuterung
quelle
Perl 6 , 23 Bytes
Probieren Sie es online!
Erläuterung
quelle
Kohle , 16 Bytes
Probieren Sie es online!Link ist eine ausführliche Version des Codes. Erläuterung:
drücken
1
auf die leere Liste, um mit einem definierten Produkt zu beginnen.Wiederholen, während die Eingabe am Anfang des Produkts der Liste nicht gefunden wird ...
... schieben Sie die Länge der Liste auf sich.
Gibt den zuletzt in die Liste übertragenen Wert aus.
quelle
Perl 5
-Mbigint -p
, 25 BytesProbieren Sie es online!
quelle
J ,
2822 Bytes-6 Bytes dank FrownyFrog
Probieren Sie es online!
ursprüngliche Antwort J , 28 Bytes
Probieren Sie es online!
>:@] ... x:@1
Beginnen Sie mit einer erweiterten Genauigkeit1
und erhöhen Sie diese, während Sie ...-.@
Es ist nicht der Fall, dass ...{.@
Die erste Ulme ist ein ...E.&":
Alle Teilzeichenfolgen stimmen (nach Eingabe beider Argumente&":
) mit der Suche nach der ursprünglichen Eingabe in ... überein.!
Die Fakultät der Zahl, die wir erhöhenquelle
(]+1-0{(E.&":!))^:_&1x
C (gcc) -lgmp, 161 Bytes
Probieren Sie es online!
quelle
strstr(b=mpz_get_str(0,10,_),a)-b;mpz_mul(_,_,n))mpz_add_ui(n,n,1)
stattb=mpz_get_str(0,10,_),strstr(b,a)-b;mpz_add_ui(n,n,1),mpz_mul(_,_,n))
Python 3 , 63 Bytes
Probieren Sie es online!
-24 Bytes dank Jo King
-3 Bytes dank Chas Brown
quelle
f=
dass das , was Sie in der Kopfzeile haben, für Ihre Bitanzahl zählen soll.Jelly , 11 Bytes
Probieren Sie es online!
quelle
Sauber , 88 Bytes
Probieren Sie es online!
Definiert
$ :: Integer -> Integer
.Verwendet
Data.Integer
Ganzzahlen beliebiger Größe für E / A.quelle
Wolfram Language (Mathematica) , 62 Byte
Probieren Sie es online!
quelle
Ruby , 40 Bytes
Probieren Sie es online!
quelle
Icon ,
6563 BytesProbieren Sie es online!
quelle
Haskell, 89 Bytes
Wenn jemand weiß, wie man den erforderlichen Import umgeht, lass es mich wissen.
quelle