Biorąc pod uwagę liczbę całkowitą n >= 2
, wyprowadzaj największy wykładnik w jego pierwotnym rozkładzie na czynniki pierwsze. Jest to sekwencja OEIS A051903 .
Przykład
Let n = 144
. Jego podstawową faktoryzacją jest 2^4 * 3^2
. Największy wykładnik to 4
.
Przypadki testowe
2 -> 1
3 -> 1
4 -> 2
5 -> 1
6 -> 1
7 -> 1
8 -> 3
9 -> 2
10 -> 1
11 -> 1
12 -> 2
144 -> 4
200 -> 3
500 -> 3
1024 -> 10
3257832488 -> 3
Odpowiedzi:
05AB1E , 2 bajty
Wypróbuj online!
W jaki sposób?
źródło
Python 2 ,
625756 bajtówWypróbuj online!
źródło
f=lambda n,k=0:max(k%n-n%(k/n+2)**(k%n)*n,k<n**2and f(n,k+1))
Galaretka , 3 bajty
Wypróbuj online!
Działa to również w M . Wypróbuj online!
źródło
Haskell ,
6160504846 bajtów-2 bajty dzięki xnor
Wypróbuj online!
45 bajtów z importem:
Wypróbuj online!
źródło
0^
Jest ładny, ale jest krótszy tylko sprawdzić stan jako wartość logiczną.Ohm v2 , 2 bajty
Wypróbuj online!
Wyjaśnienie?
Nie.
źródło
Python 2 , 78 bajtów
Wypróbuj online!
-5 dzięki ovs .
Ta odpowiedź nie wykonuje kontroli wstępnych. Zamiast tego wykorzystuje fakt, że najwyższy wykładnik czynnika pierwszego będzie większy lub równy wykładnikowi dowolnego innego czynnika w dowolnej faktoryzacji liczby.
źródło
Japt
-h
,97 bajtówSpróbuj
źródło
ü
tworzy tablice podrzędne o równych wartościach. To działa również sortować według wartości pierwszy, ale to nie jest istotne tutaj.Mathematica, 27 bajtów
Wypróbuj online!
źródło
Max@@Last/@FactorInteger@#&
. Niestety nie oszczędza to żadnych bajtów.MATL , 4 bajty
Wypróbuj online!
źródło
Brachylog , 5 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Łuska , 5 bajtów
Wypróbuj online!
p
- Pobiera czynniki pierwsze.g
- Grupuje sąsiednie wartości.mL
- Pobiera długości każdej grupy.▲
- maksymalna.źródło
APL (Dyalog) , 19 bajtów
Wypróbuj online!
W jaki sposób?
2pco⎕
- Tablica 2D czynników pierwszych i wykładników1↓
- upuść czynniki⌈/
- maksymalnaźródło
JavaScript 54 bajty
* zakładając nieskończony stos (tak jak w przypadku golfowych wyzwań)
źródło
PARI / GP, 24 bajty
Jeśli nie liczę
n->
części, ma ona 21 bajtów.źródło
Oktawa , 25 bajtów
Wypróbuj online!
Wyjaśnienie
factor
produkuje tablicę (ewentualnie powtarzane) prime wykładniki Drugie wyjściemode
daje liczbę razy, że pojawi się tryb (czyli najbardziej powtórzony wpis).źródło
Pyth , 7 bajtów
Wypróbuj tutaj.
źródło
eS/LPQP
(7 bajtów),eSlM.gkP
(8 bajtów).Python 2 ,
9084 bajtówWypróbuj online!
źródło
Gaia , 4 bajty
Wypróbuj online!
ḋ
- Oblicza pierwszą faktoryzację jako pary [liczba pierwsza, wykładnik] .⌠
- Odwzoruj i zbierz wynik o maksymalnej wartości.)
- Ostatni element (wykładnik).)
- Ostatni element (maksymalny wykładnik)Gaia , 4 bajty
Wypróbuj online!
ḋ
- Oblicza pierwszą faktoryzację jako pary [liczba pierwsza, wykładnik] .)¦
- Mapa z ostatnim elementem (wykładnikiem).⌉
- Pobiera maksymalny element.źródło
MY , 4 bajty
Wypróbuj online!
Wyjaśnienie?
źródło
Oktawa : 30 bajtów
a=factor(x)
zwraca wektor zawierający czynniki pierwsze zx
. Jest to wektor posortowany w porządku rosnącym, w którym pomnożenie wszystkich liczbfactor(x)
daje wynikx
taki, że każda liczba w wektorze jest liczbą pierwszą.histc(...,a)
oblicza histogram na wektorze czynników głównych, gdzie przedziały są czynnikami głównymi. Histogram zlicza, ile razy widzieliśmy każdą liczbę pierwszą, uzyskując wykładnik każdej liczby pierwszej. Możemy tu trochę oszukiwać, ponieważ choćfactor(x)
zwrócą zduplikowane liczby lub pojemniki, tylko jeden z pojemników zarejestruje całkowitą liczbę wyświetleń liczby pierwszej.max(...)
w ten sposób zwraca największy wykładnik.Wypróbuj online!
źródło
Alice , 17 bajtów
Wypróbuj online!
Wyjaśnienie
Jest to tylko struktura dla prostych programów arytmetycznych z dziesiętnym We / Wy. Jest
...
to rzeczywisty program, który ma już dane wejściowe na stosie i pozostawia dane wyjściowe na górze stosu.Alice faktycznie ma wbudowane funkcje, aby uzyskać pierwszą faktoryzację liczby całkowitej (nawet z parami liczba pierwsza-wykładnik), ale najkrótszy, jaki wymyśliłem, używając ich jest o 10 bajtów dłuższy.
Zamiast tego chodzi o to, że wielokrotnie dzielimy jedną kopię każdego odrębnego czynnika pierwszego z danych wejściowych, aż osiągniemy 1 . Liczba kroków, jakie podejmuje, jest równa największemu pierwszemu wykładnikowi. Będziemy nadużywać głowicy taśmy jako zmiennej licznika.
źródło
Julia,
605240 bajtów-12 + korekta dzięki Steadybox
źródło
print()
. Ponadto nie udało mi się uruchomić kodu w TIO w takiej postaci, w jakiej jest, zakładam, że działa on na innej wersji języka, która nie jest tam dostępna? Działa to dobrze w TIO:print(maximum(collect(values(factor(parse(BigInt,readline()))))))
print()
to konieczne, ponieważ odpowiedź musi być pełnym programem (wyświetlającym dane wyjściowe) lub funkcją (zwracającą dane wyjściowe). W przeciwnym razie twoje rozwiązanie będzie w porządku. Wygląda na to, że możesz zapisać niektóre bajty (i uniknąć wydruku) w ten sposób:f(x)=maximum(collect(values(factor(x))))
Właściwie 4 bajty
Wypróbuj online!
źródło
Python 2 , 64 bajty
-4 bajty dzięki H.PWiz.
Wypróbuj online!
Port odpowiedzi Haskella H.PWiza . Udostępniam to tylko dlatego, że jestem dumny, że mogłem zrozumieć ten fragment kodu Haskell i go przetłumaczyć. : P
źródło
range(1,n)
działa?range(1, n)
produkuje wszystkie liczby całkowite w [1, n).a
Aksjomat, 61 bajtów
Po raz pierwszy stwierdzam, że możliwe jest zdefiniowanie funkcji bez użycia nawiasu (). Zamiast „f (n) ==” „fn ==” jeden znak mniej ...
źródło
Rakieta ,
8379 bajtówWypróbuj online!
(Nie jestem pewien, czy istnieje konsensus co do tego, co stanowi kompletne rozwiązanie Racket, więc idę z konwencją Mathematica, że liczy się czysta funkcja).
Jak to działa
factorize
daje faktoryzację jako listę par:(factorize 108)
daje'((2 2) (3 3))
. Drugi element pary podajecadr
skrót, składający się zcar
(nagłówek listy) zcdr
(ogon listy).Głupio robię,
(cadr (argmax cadr list))
aby znaleźć maksimum drugich elementów, alemax
nie działa na listach:(max (map cadr list))
nie robi tego, co chcemy. Nie jestem ekspertem od rakiet, więc może istnieje standardowy lepszy sposób na zrobienie tego.Rakieta, 93 bajty
Wypróbuj online!
Jak to działa
Alternatywna wersja, która nie importuje,
factorize
a zamiast tego robi wszystko od zera, mniej więcej. Funkcja(p m d)
wyszukuje najwyższą mocd
, która dzielim
, a potem po prostu znaleźć najwyższą wartość(p n d)
dlad
pomiędzy2
in
. (Nie musimy ograniczać tego do liczb pierwszych, ponieważ nie będzie złożonej mocy, która działałaby lepiej niż moce podstawowe).źródło
max
rozwiązanie jest,(apply max (map cadr list)
ale(cadr (argmax cadr list))
niestety krótsze.J, 9 bajtów
Maksymalna liczba
<./
głównych wykładników_&q:
Wypróbuj online!
źródło
APL (NARS), 15 znaków, 30 bajtów
test:
komentarz:
źródło