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ę siłę pierwszą p n > 1, zwróć liczbę pierwszą p.
Przypadki testowe :
input output
9 3
16 2
343 7
2687 2687
59049 3
Punktacja : To jest golf . Najkrótsza odpowiedź w bajtach wygrywa.
code-golf
arithmetic
primes
king-of-the-hill
python
board-game
code-golf
number
subsequence
code-golf
ascii-art
code-golf
array-manipulation
decision-problem
grid
fastest-algorithm
logic-gates
logic
code-golf
cards
code-golf
rational-numbers
code-golf
math
number
sequence
code-golf
array-manipulation
integer
code-golf
number
array-manipulation
code-golf
number
sequence
decision-problem
code-golf
ascii-art
number
code-challenge
sequence
arithmetic
sorting
code-golf
date
fastest-algorithm
code-golf
string
number
random
combinatorics
code-golf
combinatorics
code-golf
ascii-art
base-conversion
code-golf
array-manipulation
code-golf
string
code-golf
string
number
arithmetic
code-golf
kolmogorov-complexity
code-golf
string
array-manipulation
json
code-golf
puzzle-solver
code-golf
binary
graph-theory
code-golf
arithmetic
haskell
code-golf
string
cipher
code-golf
code-golf
string
parsing
alphabet
code-golf
string
code-golf
ascii-art
code-golf
string
number
code-golf
string
balanced-string
Leaky Nun
źródło
źródło
n
być 1?n = 1
.Odpowiedzi:
Język programowania Szekspira ,
209207 bajtówWypróbuj online!
(I/you)*you<I
jest krótszy niżI%you>0
w SPL.źródło
05AB1E , 1 bajt
Wypróbuj online!
źródło
[]
wokół liczby) jest prawidłowym wyjściem?f = push list of prime factors (no duplicates)
Java 8,
463937 bajtów-7 bajtów pośrednio dzięki @Tsathoggua .
-2 bajty dzięki JoKing
Wypróbuj online.
Wyjaśnienie:
źródło
n->{for(int i=1;++i<=n;)if(n%i<1)return i;}
aby uzyskać 43 znaki? (Nie mówię po Javie.)n->{for(int i=1;++i<=n;)if(n%i<1)return i;return n;}
działałby, ale niestety jest dłuższy. Jednak Java może mieć pojedynczy zwrot w nieskończonych pętlach, co faktycznie oszczędza bajty, więc dziękuję!n->{for(int i=1;;)if(n%++i<1)return i;}
. Ponieważi
będzien
ostatecznie (jak w przypadku testu2687
) in%n==0
Thei<=n
nie jest wymagane w tym przypadku.Python 3 ,
3635 bajtów-1 bajt dzięki Mathmandan
Wypróbuj online!
Funkcja rekurencyjna, w której pierwszy czynnik jest większy niż 1
źródło
if/else
sięand/or
. Podobnie jakf=lambda n,x=2:n%x and f(n,x+1)or x
.MATL ,
43 bajtyWypróbuj online!
Wyjaśnienie:
źródło
Biała spacja ,
806160 bajtów-20 bajtów dzięki @JoKing .
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
i == n
czeku?n%n
w każdym razie byłoby 0n%i
i wywołać wydruk później?Oktawa , 16 bajtów
Wypróbuj online!
Wyjaśnienie:
Lub:
źródło
Funky , 30 bajtów
Wypróbuj online!
źródło
0==
1>
myślę, że może być .JavaScript (ES6), 25 bajtów
Wypróbuj online!
źródło
Galaretka , 3 bajty
Wypróbuj online!
ÆfṪ
,ÆfX
mogą być również poważnie konkurującymi funkcjami.ÆfQ
może być poważnie konkurującym pełnym programem.źródło
C (gcc) , 28 bajtów
Wypróbuj online!
źródło
Dalej (gforth) , 34 bajty
Wypróbuj online!
Wyjaśnienie
Objaśnienie kodu
źródło
Pyth , 2 bajty
Wypróbuj tutaj!
źródło
Brachylog , 2 bajty
Wypróbuj online!
Wyjaśnienie
źródło
J , 4 bajty
Wybierz
{
pierwszy0
z czynników pierwszychq:
Wypróbuj online!
źródło
Neim , 1 bajt
Wypróbuj online!
źródło
Haskell , 26 bajtów
Wypróbuj online!
źródło
Mathematica, 17 bajtów
Drugi najmniejszy dzielnik.
źródło
R ,
3226 bajtów@Giuseppe z inną logiką i krótszym rozwiązaniem:
Wypróbuj online!
Oryginalny:
Wypróbuj online!
Jest to oczywiście znacznie lepszy port rozwiązania 05AB1E .
źródło
ARBLE , 19 bajtów
Wypróbuj online!
źródło
Japt
-g
, 1 bajtWypróbuj tutaj
źródło
PowerShell , 31 bajtów
Wypróbuj online!
Konstruuje zakres od
2
do wejścia$a
, wyciąga te elementywhere
(?
),%
wynikiem operacji modulo jest zero!(...)
(tzn. Te, które są dzielnikami$a
), a następnie przyjmuje najmniejszy z[0]
nich. Pozostaje w przygotowaniu, wynik jest domyślny.źródło
Perl 6 , 22 bajtów
Wypróbuj online!
Anonimowy blok kodu, który filtruje czynniki z zakresu 2 do danych wejściowych i zwraca pierwszy. Próbowałem
^$
zapisać 2 bajty, ale to nie zadziałało w przypadku, gdy dane wejściowe były pierwsze.źródło
Visual Basic .NET (.NET Framework v4.5),
12371 bajtów-52 bajty dzięki @Jo King
Wypróbuj online!
Nie golfowany:
Wyjaśnienie:
Do
i
wyszukania pętli wstecz od pierwszego numeru i wyszukuje wszystkie numery, które dzielą go równomiernie. Ponieważ cofamy się, najmniejsze są przechowywane w vairableA
.VB daje ci dowolną zmienną, która pasuje do nazwy twojej funkcji (w moim przypadku,
A
). Pod koniec wykonywania funkcji zwracana jest wartość w tej zmiennej (z wyjątkiem jawnejReturn
instrukcji).źródło
Haskell , 29 bajtów
Wypróbuj online!
źródło
Python 3 ,
474544 bajtówZainspirowany odpowiedzią Kevina Cruijssena w Javie .
23 bajty usunięte dzięki Jo Kingowi .Wypróbuj online!
źródło
if
, a warunkiem może być<1
range(n)
i zwiększająci
na miejscuPari / GP , 17 bajtów
Wypróbuj online!
Pari / GP , 17 bajtów
Wypróbuj online!
źródło
Rubinowy , 100 bajtów
Wypróbuj online!
źródło
Stax , 3 bajty
Uruchom i debuguj
Pierwszy element faktoryzacji pierwotnej.
źródło
Julia 0.6 , 25 bajtów
Wypróbuj online!
źródło