Für jede ganze Zahl gibt es eine Potenz von 2, von denen jede der letzten Ziffern entweder 1 oder 2 ist.
Wenn , finde das kleinste so, dass nur aus 1 oder 2 besteht.
Für ist , da
Für ist , da
Hinweis: für , ist (wieder)
Eingabe:
Ausgabe:
Z.B.
Eingang: 2
Ausgang: 9Eingabe: 3
Ausgang: 89
Das Programm sollte in angemessener Zeit ausgeführt werden.
EDIT: Die Oeis-Sequenz für diese Herausforderung ist A147884 .
code-golf
number
number-theory
st0le
quelle
quelle
Antworten:
Python, 166 Zeichen
quelle
Wolfram Language (Mathematica) ,
78765755 BytesProbieren Sie es online!
IntegerDigits[a,10,r]
generiert eine Liste derr
letzten Dezimalstellen vona
. Subtrahiere 3/2 und überprüfe, ob sie alle entweder -1/2 oder +1/2 sind.Timing Check: 20 Sekunden bei TIO für
r = 1 .. 10
.Wolfram Language (Mathematica) ,
102959189 BytesProbieren Sie es online!
Diese Lösung ist viel länger, aber viel schneller. Durch den in OEIS A147884 vorgeschlagenen Weg über OEIS A053312 und die Verwendung von
FindInstance
Magie gelingt es TIO,r = 1 .. 12
in weniger als einer Minute zu rechnen .quelle
Ruby - 118 Zeichen
quelle
Haskell, 115 Zeichen
quelle
Python 3 , 63 Bytes
Probieren Sie es online!
quelle
05AB1E ,
1815 BytesProbieren Sie es online aus oder verifizieren Sie die ersten 8 Testfälle (mehrmals).
Erläuterung:
quelle
CSharp - 111 Zeichen
quelle
Perl 5
-Mbigint -p
, 33 BytesProbieren Sie es online!
quelle
Julia
133122 (51) BytesInspiriert von DIR Antwort:
Probieren Sie es online!
Das Folgende ist viel kürzer, stürzt aber für r> 8 ab, wie einige der anderen Antworten:
Probieren Sie es online!
quelle