Wir definieren das N- Exponentialpotential einer positiven ganzen Zahl M als die Anzahl der Präfixe von M N , die perfekte N- Potenzen sind.
Die Präfixe einer Ganzzahl sind alle aufeinander folgenden Teilfolgen von Ziffern, die mit der ersten beginnen und in der Basis 10 als Zahlen interpretiert werden. Die Präfixe von 2744 lauten beispielsweise 2 , 27 , 274 und 2744 .
Ein Präfix P ist eine perfekte N- Potenz, wenn es eine ganze Zahl K gibt, so dass K N = P ist . Zum Beispiel ist 81 eine perfekte 4- Potenz, weil 3 4 = 81 ist .
Berechnen Sie bei zwei streng positiven ganzen Zahlen M und N das N- Exponential von M gemäß der obigen Definition.
Zum Beispiel kann das 2 -exponential Potential von 13 ist 3 , weil 13 2 ist 169 , und 1 , 16 und 169 sind alle perfekt Quadrate.
Testfälle
Natürlich werden die Ausgänge fast immer ziemlich klein sein, weil die Leistungen ... nun ja ... exponentiell anwachsende Funktionen sind und es eher selten ist, mehrere perfekte Leistungspräfixe zu haben.
M, N -> Output
8499, 2 -> 1
4, 10 -> 2
5, 9 -> 2
6, 9 -> 2
13, 2 -> 3
4, 10
ist 2 , weil 1 eine perfekte 10-Potenz ist und 1048576 auch eine perfekte 10-Potenz ist ( 10 , 104 , 1048 , 10485 und 104857 nicht). Es gibt also 2 gültige Präfixe, die Ausgabe ist also 2.Antworten:
Brachylog , 12 Bytes
Probieren Sie es online!
Erläuterung
quelle
Gelee , 10 Bytes
Probieren Sie es online!
Wie es funktioniert
quelle
Haskell , 56 Bytes
Probieren Sie es online!
Extrahiert die Präfixe arithmetisch durch Wiederholen
\x->div x 10
. Ich habe versucht, die letzte Zeile ohne Punkte auszudrücken, aber keinen kürzeren Ausdruck gefunden.quelle
05AB1E , 8 Bytes
Probieren Sie es online!
Verwendet den 10-Byte-Algorithmus von Dennis Jelly. Die Eingaben erfolgen in umgekehrter Reihenfolge.
quelle
Perl 5 , 38 Bytes
Probieren Sie es online!
quelle
Haskell, 73 Bytes
Probieren Sie es online!
quelle
Java (OpenJDK 9) , 105 Byte
Probieren Sie es online!
Credits
quelle
.startsWith(""+(int)Math.pow(k,n))
kann.matches((int)Math.pow(k,n)+".*")
für -1 Byte sein.Perl 6 , 40 Bytes
Probieren Sie es online!
quelle
&foo
Variablen ein Callable zuweisen, können Sie es wie eine Unterroutine aufrufenfoo( 'bar' )
oderfoo 'bar'
müssen es nicht einschließen&
. Ich meine, Sie haben es nicht geschrieben als&say(&f(|$_))
(say
ist in keiner Weise speziell)Jelly , 14 Bytes
Probieren Sie es online! oder sehen Sie sich die Testsuite an
Wie es funktioniert
quelle
APL (Dyalog) , 31 Bytes
Probieren Sie es online!
quelle
Haskell , 83 Bytes
Probieren Sie es online!
quelle
Ruby , 60 Bytes
Vieles ist mit Gleitkommafehlern zu tun
Probieren Sie es online!
quelle
Kotlin , 89 Bytes
Probieren Sie es online!
In den Testfällen wird n als double-Wert (2.0, 10.0, 9.0) übergeben, damit ich beim Aufruf von Math.pow () nicht nach double konvertieren muss.
quelle
Python 2 ,
837170 BytesProbieren Sie es online!
Danke für 1 von ovs.
quelle
math.round()
lolGelee , 9 Bytes
Probieren Sie es online!
quelle