Zdefiniujemy N- wykładniczy potencjał dodatniej liczby całkowitej M jako liczbę prefiksów M N, które są doskonałymi mocami N.
Przedrostki liczby całkowitej są ciągłymi podciągami cyfr rozpoczynającymi się od pierwszego, interpretowanymi jako liczby w podstawie 10. Na przykład przedrostki 2744 to 2 , 27 , 274 i 2744 .
Przedrostek P jest doskonałym N parowe Jeżeli istnieje liczba całkowita K , tak że K N = P . Na przykład 81 jest idealną siłą 4, ponieważ 3 4 = 81 .
Biorąc pod uwagę dwie ściśle dodatnie liczby całkowite M i N , oblicz N- wykładniczy potencjał M zgodnie z powyższą definicją.
Na przykład potencjał wykładniczy 2 wynoszący 13 wynosi 3, ponieważ 13 2 wynosi 169 i 1 , 16 oraz 169 są idealne kwadratów.
Przypadki testowe
Oczywiście, wyjścia prawie zawsze będą dość małe, ponieważ moce są ... no cóż ... wykładniczo rosnące funkcje i posiadanie wielu prefiksów idealnej mocy jest raczej rzadkie.
M, N -> Output
8499, 2 -> 1
4, 10 -> 2
5, 9 -> 2
6, 9 -> 2
13, 2 -> 3
4, 10
jest 2 , ponieważ jeden jest doskonałym 10 mocy i 1048576 jest także doskonały 10 mocy (przy 10 , 104 , 1048 , 10485 i 104857 nie). Zatem istnieją 2 poprawne prefiksy, więc wynik to 2.Odpowiedzi:
Brachylog , 12 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Galaretka , 10 bajtów
Wypróbuj online!
Jak to działa
źródło
Haskell , 56 bajtów
Wypróbuj online!
Wyodrębnia arytmetycznie prefiksy przez powtórzenie
\x->div x 10
. Próbowałem wyrazić ostatnią linię bez punktów, ale nie znalazłem krótszego wyrażenia.źródło
05AB1E , 8 bajtów
Wypróbuj online!
Wykorzystuje 10-bajtowy algorytm Dennisa Jelly. Wejścia są w odwrotnej kolejności.
źródło
Perl 5 , 38 bajtów
Wypróbuj online!
źródło
Haskell, 73 bajty
Wypróbuj online!
źródło
Java (OpenJDK 9) , 105 bajtów
Wypróbuj online!
Kredyty
źródło
.startsWith(""+(int)Math.pow(k,n))
może być.matches((int)Math.pow(k,n)+".*")
dla -1 bajtów.Perl 6 , 40 bajtów
Wypróbuj online!
źródło
&foo
zmienną do wywołania do zmiennej, możesz wywołać ją tak, jak podprogramfoo( 'bar' )
lubfoo 'bar'
nie musisz go uwzględniać&
. Mam na myśli, że nie napisałeś tego jako&say(&f(|$_))
(say
nie jest w żaden sposób wyjątkowy)Galaretka , 14 bajtów
Wypróbuj online! lub zobacz pakiet testowy
Jak to działa
źródło
APL (Dyalog) , 31 bajtów
Wypróbuj online!
źródło
Haskell , 83 bajty
Wypróbuj online!
źródło
Rubinowy , 60 bajtów
w dużej mierze dotyczy to błędów zmiennoprzecinkowych
Wypróbuj online!
źródło
Kotlin , 89 bajtów
Wypróbuj online!
W przypadkach testowych przekazano in jako podwójne wartości (2.0, 10.0, 9.0), dzięki czemu nie muszę konwertować na podwójne podczas wywoływania Math.pow ().
źródło
Python 2 ,
837170 bajtówWypróbuj online!
Dzięki za 1 z jaj.
źródło
math.round()
lolGalaretka , 9 bajtów
Wypróbuj online!
źródło