Wygląda na to, że wiele osób chciałoby to mieć, więc jest to kontynuacja tego wyzwania !
Definicja : potęga pierwsza jest liczbą naturalną, którą można wyrazić w postaci p n, gdzie p jest liczbą pierwszą, a n jest liczbą naturalną.
Zadanie : Biorąc pod uwagę moc pierwotną p n > 1, zwróć moc n.
Przypadki testowe :
input output
9 2
16 4
343 3
2687 1
59049 10
Punktacja : To jest golf . Najkrótsza odpowiedź w bajtach wygrywa.
code-golf
number
arithmetic
primes
Leaky Nun
źródło
źródło
Odpowiedzi:
05AB1E , 2 bajty
Wypróbuj online!
źródło
Ò
:: Push lista głównych czynników (z duplikatami) ig
: Push długość .Python 3 , 49 bajtów
Wypróbuj online!
Wyjścia
True
zamiast 1 ( dozwolone przez OP ). Funkcja rekurencyjna, która wielokrotnie znajduje najniższy współczynnik, a następnie wywołuje tę funkcję z następną najniższą mocą, aż osiągnie 1. Jest to rozszerzenie mojej odpowiedzi na poprzednie pytanie.źródło
Pyth, 2
Policz czynniki pierwsze:
Test online .
źródło
Python 2 , 37 bajtów
Wypróbuj online!
Liczy czynniki. Najwyraźniej napisałem ten sam golf w 2015 roku.
Wąsko pokonuje nierekurencyjne
Python 2 , 38 bajtów
Wypróbuj online!
źródło
Narzędzia Bash + GNU, 22
Wypróbuj online!
źródło
factor|sed s/\ //|wc -w
działafactor|tr -cd \ |wc -c
?dc ,
5041 bajtówWypróbuj online!
Pobiera dane wejściowe z góry stosu (w TIO umieść dane wejściowe w nagłówku, aby załadować je na stos przed wykonaniem). Wyjścia na standardowe wyjście.
Wyjaśnienie
Zastosowane rejestry:
i
: bieżący dzielnik próbny podczasX
działania. Później znaleźliśmy dzielnik.X
: makrodli1+dsi%0<X
, które ma efekt „inkrementacjii
, a następnie sprawdź moduł z wartością na stosie (który będzie oryginalnym wejściem). Jeśli nie jest zero, powtórz”.Y
: makrodli/dli<Y
, które ma efekt „Dodaj do stosu kopię bieżącej góry stosu, podzieloną przezi
. Powtarzaj aż doi
osiągnięcia”.Pełny program:
źródło
twarz , 86 bajtów
Brawo, dłużej niż Java!
Wypróbuj online!
Szczególnie podoba mi się sztuczka polegająca na użyciu wartości zwracanej
sscanf
. Normalnie wartość zwracana byłaby odrzucana, ale tutaj zawsze będzie to 1, ponieważ zawsze czytamy jedną liczbę jako dane wejściowe. Możemy to wykorzystać, przypisując jej wartość zwrotną do zmiennej1
, oszczędzając 2 bajty, które w innym przypadku byłyby wymagane do1
jednoznacznego przypisania 1.źródło
Attache and Wolfram Language (Mathematica)Poliglotka , 10 bajtów
Wypróbuj Attache online! Wypróbuj Mathematica online!
Po prostu wbudowane narzędzie do obliczania liczby głównych czynników N ma.
Wyjaśnienie
Ponieważ N = p k , Ω ( N ) = Ω ( p k ) = k , pożądany wynik.
źródło
Java 8, 59 bajtów
Lambda od
int
doint
.Wypróbuj online
źródło
J, 4 bajty
q:
podaje listę głównych czynników,#
podaje długość listy.Wypróbuj online!
źródło
R , 37 bajtów
Wypróbuj online!
źródło
sum(x|1)
jest prawie zawsze krótszy niżlength(x)
Stax ,43) bajty
Uruchom i debuguj
Długość faktoryzacji pierwotnej.
źródło
MATL , 3 bajty
Wypróbuj online!
Wyjaśnienie:
źródło
Galaretka ,
32 bajtyWypróbuj online!
źródło
Biała spacja, 141 bajtów
Dodane litery
S
(spacja),T
(tab) iN
(nowa linia) tylko jako wyróżnienia.[..._some_action]
dodano tylko jako wyjaśnienie.Wypróbuj online (tylko z surowymi spacjami, tabulatorami i nowymi wierszami).
Objaśnienie w pseudo-kodzie:
Przykładowy przebieg:
input = 9
Program zatrzymuje się z błędem: nie znaleziono wyjścia.
źródło
Brachylog , 2 bajty
Wypróbuj online!
Wyjaśnienie
źródło
Python 2 , 62 bajty
Wypróbuj online!
Nic szczególnego tutaj.
źródło
Japt , 3 bajty
Wypróbuj online!
Wyjaśnienie:
źródło
Właściwie 2 bajty
Wypróbuj online!
źródło
Haskell , 27 bajtów
Wypróbuj online!
Liczy czynniki. Porównać:
Haskell , 28 bajtów
Wypróbuj online!
Haskell , 28 bajtów
Wypróbuj online!
Haskell , 30 bajtów
Wypróbuj online!
źródło
Oktawa , 18 bajtów
Wypróbuj online!
Robi to, co mówi na puszce: Liczba niezerowych elementów w pierwotnej faktoryzacji danych wejściowych.
źródło
Cjam, 5 bajtów
Wypróbuj online!
Wyjaśnienie:
Wbudowane są świetne!
źródło
rimf,
(pełny program), jak i{mf,}
(funkcja).QBasic, 51 bajtów
Używa tego samego algorytmu co rozwiązanie „Odzyskaj liczbę pierwszą” w celu znalezienia podstawy, a następnie stosuje reguły logarytmów, aby uzyskać wykładnik:l o g( pn) = n ⋅ l o g( p ) .
źródło
Gaia , 2 bajty
Wypróbuj online!
źródło
JavaScript (ES6), 37 bajtów
Wypróbuj online!
źródło
Perl 6 , 36 bajtów
Szuka pierwszego czynnika
(2..*).first: $_%%*
, a następnie oblicza przybliżoną wartość (logi nie uzyskają jej dokładności) i zaokrągla ją.Wypróbuj online!
źródło
Pari / GP , 8 bajtów
Wypróbuj online!
Pari / GP , 14 bajtów
Wypróbuj online!
źródło
Rakieta , 31 bajtów
Wypróbuj online!
źródło
Perl 6 , 18 bajtów
Wypróbuj online!
Anonimowy blok kodu, który pobiera listę czynników i wymusza ją na liczbę.
źródło
JavaScript (Node.js) , 29 bajtów
Wypróbuj online! Uwaga: Przepełnienia stosu dla większych danych wejściowych.
źródło