проблема
Цель, как говорится в заголовке, найти n-е простое число такое, что простое число 1 делится на n.
объяснение
Вот пример, чтобы вы поняли вопрос, это не обязательно так, как это должно быть решено. Это просто как способ объяснить вопрос
учитывая 3 в качестве входных данных, мы сначала посмотрим на все простые числа
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 ...
Затем мы выбираем простые числа так, что простое число - 1 делится на n (в данном случае 3)
7 13 19 31 37 43 61 67 73 79 97 103 107 109 127 ...
Затем мы выбираем n-й член в этой последовательности
Мы бы вывели 19 для входа 3
Заметка
Мы также можем рассматривать это как n-е простое число в последовательности {1, n + 1, 2n + 1, 3n + 1 ... kn + 1}, где k - любое натуральное число
Тестовые случаи
1 --> 2
2 --> 5
3 --> 19
4 --> 29
100 --> 39301
123 --> 102337
code-golf
number
number-theory
primes
Андо Бандо
источник
источник
Ответы:
05AB1E ,
98 байт05AB1E использует кодировку CP-1252 .
Сохраненный байт благодаря Osable
Попробуйте онлайн!
объяснение
источник
µN¹*>Dp½
что экономит один байт и ускоряет вычисления.Python 2, 58 байт
источник
Mathematica, 48 байтов
Безымянная функция, принимающая один аргумент, который она называет
n
. Создает список первыхn^3
простых чисел, выбирает те из них, которые совпадают с 1 по модулюn
, а затем принимаетn
th-й элемент результата. Он работает за несколько секунд на входе 123.В настоящее время неизвестно, есть ли среди первых
n^3
простых чисел хотя бы одно простое число , которое совпадает с 1 по модулюn
, а тем болееn
их меньше . Однако алгоритм может быть доказан верным (по крайней мере, для большихn
) в предположении обобщенной гипотезы Римана !источник
Haskell,
5947 байтовПример использования:
f 4
->29
.Как это работает:
Изменить: Спасибо @Damien за 12 байтов, удалив тест делимости и в первую очередь глядя только на кратные.
источник
f n=[p|p<-[1,n+1..],all((<2).gcd p)[2..p-1]]!!n
Желе , 9 байт
Попробуйте онлайн!
Как это работает
источник
Java 7, 106 байт
Ungolfed:
Тестовый код:
Попробуйте здесь (в последнем тестовом примере превышен лимит времени для ideone)
Выход:
источник
System.out.println
основном они добавляются, так что вы видите, какой ввод я использовал для показанного вывода, и все также предоставляется на тот случай, если кто-то захочет скопировать и вставить его в свою IDE, чтобы поиграть с ним.Насм 679 байт (Инструкция Intel 386 на 120 байт)
это не одураченный и результаты
источник
На самом деле , 13 байтов
Предложения по игре в гольф приветствуются! Попробуйте онлайн!
Ungolfing
источник
Common Lisp, 162 байта
Использование:
Ungolfed:
Некоторые из этих
loop
конструкций, вероятно, можно сократить доdo
циклов, но это то, что у меня есть сейчас.источник
MATL , 12 байт
Попробуйте онлайн!
(Для ввода
123
тайм-аут в онлайн-компиляторе, но он работает в автономном режиме.)объяснение
источник
Perl
7776 + 1 = 77 байтИспользует регулярное выражение для простого тестирования, чтобы определить,
$p
является ли простое число, и гарантирует, что оно соответствует 1 модулю ввода (единственные неотрицательные целые числа ниже 2 - это 0 и 1, но оно не может быть 0, если оно простое, поэтому оно должно быть 1. экономит 1 байт==1
).источник
(1 x++$.)!~/^(11+?)\1+$/&&($.%$_<2)&&push@a,$.while@a<$_;say$a[-1]
(это то, о чем я говорил в моем предыдущем комментарии). Однако вывод (любой версии) кажется неправильным, по крайней мере, 2 и 3 ...Mathematica 44 байта
Очень быстро. Использует идею из «Записки»
Выход
источник
Perl 6 ,
46 3937 байтисточник
Java 8, 84 байта
Golfed
Ungolfed
объяснение
Решение вдохновлено несколькими другими ответами. Функция - это лямбда, которая ожидает один int.
n>1?i:2
дешевый хак, потому что я не мог найти лучший способ рассмотреть случай n = 1.Кроме того, это решение работает на Ideone, но было протестировано для всех тестовых случаев. Время истекло, потому что для того, чтобы сбрить пару байтов, я удалил явную
j<i
проверку во внутреннем цикле. Это в основном подразумеваетсяi%j>0
... за исключением случаевi=1
иj=2
(самой первой итерации), в этом случае цикл выполняется до тех пор, пока j не переполнится (я предполагаю). Затем он прекрасно работает для всех итераций после.Для версии, которая не имеет времени ожидания, которая на пару байтов длиннее, смотрите здесь!
источник
Ракетка 109 байт
Ungolfed:
Тестирование:
Выход:
источник
Ruby 64 байта
Вызывается так:
Кроме того, это приложение командной строки работает:
называется так
но я не уверен, как считать персонажей. Я думаю, что могу игнорировать название языка, но
-rprime
перед именем скрипта нужно указать пробел и, так что он немного короче - 63. , ,источник
R, 72 байта
Ужасно неэффективно и медленно, но это работает. Он читает входные данные из stdin, а затем использует
isPrime
функцию изnumbers
пакета, чтобы найти простые числа. Остальное просто проверяет,prime - 1
делится ли наn
.источник
JavaScript (ES6), 65 байт
Использует тестер простоты регулярного выражения, поскольку он а) на 8 байт короче и б) менее рекурсивен, чем мой чисто рекурсивный подход.
источник
Аксиома 64 байта
кто-то знает, как писать выше, используя потоки Axiom? ... некоторые примеры
Тип: кортеж NonNegativeInteger
источник