Определение : простая степень - это натуральное число, которое может быть выражено в форме p n, где p - простое число, а n - натуральное число.
Задача : При заданной простой степени p n > 1 вернуть простое число p.
Тестовые случаи :
input output
9 3
16 2
343 7
2687 2687
59049 3
Подсчет очков : это код-гольф . Кратчайший ответ в байтах побеждает.
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
Дрянная Монахиня
источник
источник
n
быть 1?n = 1
.Ответы:
Язык программирования Шекспира ,
209207 байтПопробуйте онлайн!
(I/you)*you<I
короче чемI%you>0
в SPL.источник
05AB1E , 1 байт
Попробуйте онлайн!
источник
[]
около числа) является действительным выводом?f = push list of prime factors (no duplicates)
Java 8,
463937 байт-7 байтов косвенно благодаря @Tsathoggua .
-2 байта благодаря JoKing
Попробуйте онлайн.
Объяснение:
источник
n->{for(int i=1;++i<=n;)if(n%i<1)return i;}
чтобы получить 43 символа? (Я не говорю на Java.)n->{for(int i=1;++i<=n;)if(n%i<1)return i;return n;}
будет работать, но, к сожалению, дольше. Однако Java может иметь один возврат в бесконечных циклах, что действительно экономит байты, так что спасибо!n->{for(int i=1;;)if(n%++i<1)return i;}
, Поскольку в конечном итогеi
станетn
(как в случае с тестом2687
), иn%n==0
,i<=n
в этом случае, не требуется.Python 3,
3635 bytes-1 byte thanks to mathmandan
Try it online!
Recursive function that finds the first factor larger than 1
источник
if/else
withand/or
. Like,f=lambda n,x=2:n%x and f(n,x+1)or x
.MATL,
43 bytesTry it online!
Explanation:
источник
Пробел ,
806160 байт-20 байт благодаря @JoKing .
Буквы
S
(пробел),T
(табуляция) иN
(новая строка) добавляются только как подсветка.[..._some_action]
добавлено только в качестве объяснения.Попробуйте онлайн (только с пробелами, вкладками и новыми строками).
Объяснение в псевдокоде:
Пример выполнения:
input = 9
Программа останавливается с ошибкой: выход не найден.
источник
i == n
чек?n%n
было бы 0 в любом случаеn%i
и потом вызывать печать?Октава , 16 байт
Попробуйте онлайн!
Объяснение:
Или:
источник
Фанки , 30 байт
Попробуйте онлайн!
источник
0==
может быть1>
я думаю.JavaScript (ES6), 25 байт
Попробуйте онлайн!
источник
Желе , 3 байта
Попробуйте онлайн!
ÆfṪ
,ÆfX
Также может быть серьезно конкурировать функции.ÆfQ
может быть серьезно конкурирующей полной программой.источник
C (gcc) , 28 байтов
Попробуйте онлайн!
источник
Forth (gforth) , 34 байта
Попробуйте онлайн!
объяснение
Код Объяснение
источник
Pyth , 2 байта
Попробуй это здесь!
источник
Брахилог , 2 байта
Попробуйте онлайн!
объяснение
источник
J , 4 байта
Выберите
{
первый0
из главных факторовq:
Попробуйте онлайн!
источник
Нейм , 1 байт
Попробуйте онлайн!
источник
Haskell , 26 байт
Попробуйте онлайн!
источник
Mathematica, 17 байт
Второй наименьший делитель.
источник
R ,
3226 байт@Giuseppe с другой логикой и более коротким решением:
Попробуйте онлайн!
Оригинал:
Попробуйте онлайн!
Это, очевидно, намного лучший порт для решения 05AB1E .
источник
ARBLE , 19 байт
Попробуйте онлайн!
источник
Japt
-g
, 1 байтПопробуй здесь
источник
PowerShell , 31 байт
Попробуйте онлайн!
Создает диапазон от
2
ввода до ввода$a
, извлекает эти элементыwhere
(?
), и операция по модулю%
приводит к нулю!(...)
(т. Е. К тем, которые являются делителями$a
), а затем принимает наименьший[0]
из них. Это осталось на конвейере, вывод неявный.источник
Perl 6 , 22 байта
Попробуйте онлайн!
Блок анонимного кода, который фильтрует факторы диапазона от 2 до ввода и возвращает первый. Я попытался использовать,
^$
чтобы сохранить 2 байта, но это не сработало в случае, когда ввод был простым.источник
Visual Basic .NET (.NET Framework v4.5),
12371 байт-52 байта благодаря @Jo King
Попробуйте онлайн!
Ungolfed:
Объяснение:
В
i
поисках петли в обратном направлении от первого номера, и находит все числа , которые делят его поровну. Поскольку мы идем в обратном направлении, самые маленькие хранятся вA
.VB дает вам свободную переменную, которая соответствует вашему имени функции (в моем случае,
A
). В конце выполнения функции возвращается значение в этой переменной (за исключением явногоReturn
выражения.источник
Haskell , 29 байт
Попробуйте онлайн!
источник
Python 3 ,
474544 байтаВдохновленный ответом Кевина Круйссена на Java .
23 байта удалены благодаря Джо Кингу .Попробуйте онлайн!
источник
if
, и условие может быть<1
range(n)
и увеличивая егоi
на местеПари / ГП , 17 байт
Попробуйте онлайн!
Пари / ГП , 17 байт
Попробуйте онлайн!
источник
Рубин , 100 байт
Попробуйте онлайн!
источник
Stax , 3 байта
Запустите и отладьте его
Первый элемент первичной факторизации.
источник
Юлия 0,6 , 25 байт
Попробуйте онлайн!
источник