Podana liczba całkowita n
wyprowadza najmniejszy wykładnik e
większy niż 1 taki, który n^e
zawiera n
jako podłańcuch.
Na przykład dla 25
, odpowiedź powinna brzmieć 2
jako 25 ^ 2 = 625
, która zawiera 25
jako podłańcuch, ale odpowiedź na 13
powinna być 10
, ponieważ 13 ^ 10 = 137858491849
, podobnie 10
jak najniższy wykładnik, dla którego wynik zawiera 13
jako podłańcuch.
Zasady
- Standardowe reguły we / wy
- Obowiązują standardowe luki
- Najkrótszy kod w bajtach wygrywa
n
zawsze będzie liczbą całkowitą większą niż0
Przypadki testowe
1 => 2 (1 ^ 2 = 1)
2 => 5 (2 ^ 5 = 32)
3 => 5 (3 ^ 5 = 243)
4 => 3 (4 ^ 3 = 64)
5 => 2 (5 ^ 2 = 25)
6 => 2 (6 ^ 2 = 36)
7 => 5 (7 ^ 5 = 16807)
8 => 5 (8 ^ 5 = 32768)
9 => 3 (9 ^ 3 = 729)
10 => 2 (10 ^ 2 = 100)
11 => 11 (11 ^ 11 = 285311670611)
12 => 14 (12 ^ 14 = 1283918464548864)
13 => 10 (13 ^ 10 = 137858491849)
14 => 8 (14 ^ 8 = 1475789056)
15 => 26 (15 ^ 26 = 3787675244106352329254150390625)
16 => 6 (16 ^ 6 = 16777216)
17 => 17 (17 ^ 17 = 827240261886336764177)
18 => 5 (18 ^ 5 = 1889568)
19 => 11 (19 ^ 11 = 116490258898219)
20 => 5 (20 ^ 5 = 3200000)
25 => 2 (25 ^ 2 = 625)
30 => 5 (30 ^ 5 = 24300000)
35 => 10 (35 ^ 10 = 2758547353515625)
40 => 3 (40 ^ 3 = 64000)
45 => 5 (45 ^ 5 = 184528125)
50 => 2 (50 ^ 2 = 2500)
55 => 11 (55 ^ 11 = 13931233916552734375)
60 => 2 (60 ^ 2 = 3600)
65 => 17 (65 ^ 17 = 6599743590836592050933837890625)
70 => 5 (70 ^ 5 = 1680700000)
75 => 3 (75 ^ 3 = 421875)
80 => 5 (80 ^ 5 = 3276800000)
85 => 22 (85 ^ 22 = 2800376120856162211833149645328521728515625)
90 => 3 (90 ^ 3 = 729000)
95 => 13 (95 ^ 13 = 51334208327950511474609375)
100 => 2 (100 ^ 2 = 10000)
Skrypt Pythona do generowania pierwszych 1000 odpowiedzi
Odpowiedzi:
Perl 6 , 31 bajtów
Wypróbuj online!
źródło
R ,
6944 bajtówFunkcja anonimowa. Działa na dużych,
i
gdyn
jest konwertowany na BigZ (patrz TIO). Dzięki za nauczenie mnie czegoś Giuseppe i digEmAll!Wypróbuj online!
źródło
n, ?n^i
i domyślniepaste
konwertuje się nacharacter
:-)i
powinno wystarczyć.i
do bigZ takżePython 2 ,
4241 bajtów-1 bajt dzięki Ørjan Johansen (wraca bezpośrednio
y
)Wypróbuj online!
Wyjaśnienie / Niegolfowany
Funkcja rekurencyjna próbuje od2 , 3 … aż do osiągnięcia sukcesu:
Wypróbuj online!
źródło
JavaScript (ES6 / Node.js),
4140 bajtówZaoszczędzono 1 bajt dzięki @Shaggy
Wypróbuj online!
źródło
n=>(g=x=>
$ {x * = n}.match(n)?2n:-~g(x))(n)
APL (Dyalog Unicode) ,
252317 bajtów-2 bajty dzięki @Erik the Outgolfer
-6 bajtów dzięki @ngn
dzięki @ H.PWiz za spowodowanie, że kod nie wymaga niestandardowego
⎕pp
(precyzja wydruku)Wypróbuj online!
źródło
17
w 17 ^ 14 = 1.6837782655940093E17, ale idk do tego, jakie precyzyjne odpowiedzi powinny obsługiwać⎕PP
ChybaPyth , 9 bajtów
Wypróbuj online!
źródło
Brachylog , 8 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
05AB1E , 7 bajtów
Wypróbuj online!
Wyjaśnienie:
źródło
SAS,
7166 bajtówEdycja: Usunięto
;run;
na końcu, ponieważ sugeruje to koniec danych wejściowych.Dane wejściowe są wprowadzane po
cards;
instrukcji, w następujący sposób:Generuje zestaw danych
a
zawierający dane wejściowen
i wyjściowee
.źródło
%p(n)
) Jest całkowicie w porządku, jednak wynik zależy od tego, czymacro
s w SAS może zwrócić wartości. Jeśli mogą zwrócić, „wyjście” powinno wynikać ze zwrócenia wyniku, w przeciwnym razie powinno zostaćGalaretka , 7 bajtów
Wypróbuj online!
źródło
Czysty , 99 bajtów
Wypróbuj online!
Jeśli to nie musi działać dla gigantycznych ogromnych liczb, to
Czysty , 64 bajty
Wypróbuj online!
źródło
Java (OpenJDK 8) , 84 bajty
Pobiera dane wejściowe jako ciąg znaków reprezentujący liczbę i wyprowadza liczbę całkowitą.
Większość bajtów pochodzi z gadatliwości
BigDecimal
potrzebnej do przetworzenia dużych liczb.Wypróbuj online!
Jak to działa
Jest to dość proste, ale dołączę wyjaśnienie dotyczące potomności;
źródło
Rubinowy , 37 bajtów
Wypróbuj online!
źródło
Japt, 10 bajtów
Spróbuj
źródło
JavaScript (Node.js) , 45 bajtów
Przypadki testowe zaczerpnięte z odpowiedzi @ Arnauld
Wypróbuj online!
źródło
Węgiel drzewny , 19 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Wyjaśnienie:
Powtarzaj, aż długość listy będzie wynosić co najmniej 2, a jej produkt zawiera dane wejściowe ...
... rzutuj wejście na liczbę całkowitą i wypchnij je na listę.
Rzuć długość listy na ciąg i niejawnie ją wydrukuj.
źródło
Python 3 ,
6358 bajtówWypróbuj online!
Python2 byłby prawdopodobnie krótszy, ale lubię używać 3. Wychodzenie z lambda jest trudne, ale próbuję kilku rzeczy.
źródło
while
lambdy. Może spróbuję innych sposobów ..e
na liście argumentów (tj.def f(n,e=2)
) In**e
zapisaniu niektórych bajtów, Python 2 rzeczywiście zapisałby sporo bajtów.for
lubwhile
nie działają.MathGolf , 10 bajtów
Wypróbuj online!
Wyjaśnienie
Czuje się to wyjątkowo marnotrawstwem, ponieważ trzeba odczytać dane wejściowe dwa razy, dwukrotnie zwiększyć licznik pętli.
źródło
Rubinowy , 41 bajtów
Wypróbuj online!
źródło
C # (.NET Core) ,
10489 bajtówWypróbuj online!
-1 bajt: zmieniono dla pętli na while (dzięki Skidsdev )
-14 bajtów: nadużywano dziwnej obsługi ciągu C # w celu usunięcia
ToString()
wywołańMusisz użyć biblioteki BigInteger w języku C # , ponieważ standardowe liczbowe typy C # (int, double, long, Ulong itp.) Zawodzą w przypadku niektórych większych liczb (w tym 12, 15 i 17).
Nie golfowany:
źródło
Python 2 , 47 bajtów
Wypróbuj online!
Zainspirowany rozwiązaniem @ Gigaflop .
źródło
Tcl , 69
81bajtówWypróbuj online!
źródło
PowerShell (V3 +), 67 bajtów
źródło
Common Lisp, 78 bajtów
Wypróbuj online!
źródło
J , 26 bajtów
Wypróbuj online!
UWAGA: Zmieniłem finał
]
nax:
w TIO, aby testy były udane dla większych liczb całkowitych.źródło
Oracle SQL, 68 bajtów
Zakłada się, że numer źródłowy jest przechowywany w tabeli
t(x)
, npTestuj w SQL * Plus
źródło