Для заданного числа n выведите n-е простое число Ферма, где числа Ферма имеют вид 2 2 k +1. Этот код теоретически должен работать для любого n (т. Е. Не кодировать его жестко), хотя он не должен завершаться при n> 4. (Он не должен возвращать 4294967297 при n = 5, поскольку 4294967297 не является простым числом.)
Обратите внимание, что хотя все простые числа Ферма имеют вид 2 2 n +1, не все числа вида 2 2 n +1 являются простыми. Цель этой задачи - вернуть n-е простое число.
Контрольные примеры
0 -> 3
1 -> 5
2 -> 17
3 -> 257
4 -> 65537
правила
- Стандартные лазейки запрещены.
- 0-индексация и 1-индексация допустимы.
- Это код-гольф , побеждает наименьшее количество байтов.
Связанный: Строимые н-гоны
2^(2^n) + 1
, гдеn
ввод? Это согласуется с вашими тестами (которые, как мы знаем, уже просты, поэтому нет необходимости проверять). И вы не ожидаете, что программа будет работать там, где n> 4 (а n = 5 - первое не простое число).n=1:4
. Все простые числа Ферма имеют форму2^2^n+1
, но это не означает, что все числа формы2^2^n+1
на самом деле простые. Это является в случаеn=1:4
, но неn=5
например.n
и выходные данные должны иметь форму2^(2^n)+1
. Если вы используете разные переменные для ввода и показателя степени, то некоторая путаница может быть уменьшена. Также может помочь, если вы явно заявите, что «n = 5 не нужно выводить в разумные сроки, но не должно выводить 4294967297»Ответы:
Python 2 , 53 байта
Попробуйте онлайн!
Использует тест Пепина .
Python 2 , 54 байта
Попробуйте онлайн!
источник
Желе ,
1311 байтИспользует индексирование на основе 1.
Попробуйте онлайн!
Как это работает
источник
ṛ
чтобы очистить результат ... TILÆẸ
вместо одного используется2*
целое число ... TILPerl 6 ,
4542 байтаПопробуй это
Попробуй это
Expanded:
источник
Mathematica, 56 байт
Попробуйте онлайн!
источник
Pyth , 14 байт
Попробуйте онлайн!
Использует 1-индексацию.
источник
Pyth , 14 байт
Попробуйте онлайн.
Основная идея «заимствована» из ответа xnor в другом вопросе
источник
05AB1E , 8 байтов
Код:
Результаты 1-индексированы.
Использует кодировку 05AB1E . Попробуйте онлайн!
Объяснение:
источник
Javascript,
1246 байтовБольшая часть кода берется при первичной проверке, которая отсюда .
источник
Dyalog APL (29 персонажей)
Я почти уверен, что это можно улучшить.
Это рекурсивная функция, которая проверяет число делителей в 1 + 2 ^ 2 ^ ⍵, где ⍵ - правильный аргумент функции. Если число делителей равно 2, число является простым, и оно возвращает его, в противном случае оно снова вызывает функцию с ⍵ + 1 в качестве правильного аргумента.
пример
Здесь я вызываю функцию на каждом из №4 (цифры 1-4). Он применяется к каждому номеру по очереди.
источник
Haskell , 61 байт
Попробуйте онлайн!
Индекс на основе 0
объяснение
источник