Учитывая натуральное число , возвратите -й кубинский премьер .
Кубинские простые
Кубинское простое число - это простое число вида
где и или
Детали
- Вы можете использовать индексацию на основе 0 или 1, что вам больше подходит.
- Вы можете вернуть простое число с учетом индекса или первых простых чисел в возрастающем порядке, или же вы можете вернуть бесконечный список / генератор, который производит простые числа в возрастающем порядке.
Контрольные примеры
Первые несколько терминов следующие:
(#1-13) 7, 13, 19, 37, 61, 109, 127, 193, 271, 331, 397, 433, 547,
(#14-24) 631, 769, 919, 1201, 1453, 1657, 1801, 1951, 2029, 2269, 2437,
(#25-34) 2791, 3169, 3469, 3571, 3889, 4219, 4447, 4801, 5167, 5419,
(#35-43) 6211, 7057, 7351, 8269, 9241, 10093, 10267, 11719, 12097,
(#44-52) 12289, 13267, 13669, 13873, 16651, 18253, 19441, 19927, 20173
В OEIS можно найти больше терминов: они разделены на две последовательности, в зависимости от того, или : A002407 и A002648
Ответы:
JavaScript (V8) , 54 байта
Полная программа, которая печатает кубинские простые числа навсегда.
Попробуйте онлайн!
NB. Если у вас нет бесконечной бумаги на принтере, не пытайтесь запустить ее в консоли браузера , где это
print()
может иметь другое значение.JavaScript (ES6),
63 61 6059 байтВозвращает кубинскую простую, 1-индексированную.n
Попробуйте онлайн!
Как?
Это основано на том факте, что кубинские простые числа являются простыми числами вида:
Приведенная выше формула может быть записана как:
или для любогоy>0 :
которыйx3−y3x−y дляx=y+1 иx=y+2 соответственно.
источник
05AB1E ,
16129 байтСоздает бесконечный список.
Сохранено 4 байта с формулой порта Арно для Кевина Круйссена .
Сохранено еще 3 байта благодаря Грими
Попробуйте онлайн!
объяснение
источник
N^2+3
в стек » должно быть3*N^2
. Кроме того, почему)
вместо¯
? Потому что проще набирать? И по какой-то причине я чувствую, чтоNnN‚3*¬sO‚
может быть на 1 байт короче, но я этого не вижу. Незначительная равно байты альтернативаNn3*DN3*+‚
. Но я, наверное, просто вижу вещи, которых там нет ...;) Хороший ответ, так что +1 от меня.R ,
7573 байтаПопробуйте онлайн!
-2 байта, заметив, что я могу удалить скобки, если я использую
*
вместо&
(другой приоритет).Выводится
n
кубинское простое число (1-индексируется).Он использует тот факт (приведенный в OEIS), что кубинские простые числа имеют видр = 1 + 3 н2 или 4 р = 1 + 3 н2 для некоторого N , т.е. n = a ⋅ p - 13----√ является целым числом дляа = 1 илиа = 4 .
Хитрость в том, что простое число не может иметь форму2 р = 1 + 3 н2 или 3 р = 1 + 3 н2 (*), поэтому мы можем сохранить 2 байта, проверив формулу для a ∈ { 1 , 2 , 3 , 4 } ( a ∈ { 1 , 4 } (
1:4
) вместоc(1,4)
).Слегка неутешная версия кода:
(*) Простое число не может иметь форму3 р = 1 + 3 н2 , иначе 1 = 3 ( p - n2) будет делиться на 3 .
Никакое простое число, кромер = 2 (которое не является кубинским простым), может иметь вид 2 р = 1 + 3 н2 : N должно быть нечетным, то есть n = 2 k + 1 . Расширение дает 2 р = 4 + 12 к ( к + 1 ) , следовательно, р = 2 + 6 к ( к + 1 ) и п будет четным.
источник
Wolfram Language (Mathematica) ,
666556 байтПопробуйте онлайн!
J42161217 -1 с использованием
⌊ ⌋
вместоFloor[ ]
attinat
⌊3#/4#⌋
вместо⌊3#^2/4⌋
For[n=i=0,i<#,PrimeQ@f@++n&&i++]
вместоn=2;i=#;While[i>0,i-=Boole@PrimeQ@f@++n]
источник
Java 8,
94888684 байта-6 байт с помощью Java- праймера @SaraJ , так что убедитесь, что проголосовали за нее!
-2 байта благодаря @ OlivierGrégoire . Так как первое число, которое мы проверяем, это то
7
, что мы можем отбросить трейлинг%n
от прайм- чека Сары, который должен завершить циклn=1
.-2 байта благодаря @ OlivierGrégoire путем переноса ответа @Arnauld .
Выводы разделены пробелом на неопределенный срок.
Попробуйте онлайн.
Пояснение (старой 86-байтовой версии): TODO: обновить объяснение
источник
v->{for(int n=7,i=3,p,x,d,r=0;;i+=++r%2*3,n+=i,System.out.print(x>1?x+" ":""))for(x=n,d=1;++d<n;x=x%d<1?0:n);}
может быть, кто-то может использовать это для игры в гольф? Я не мог,p
и изменивi+=++r%2*3,n+=i
наn+=i+=++r%2*3
, но тогда я все равно получу 106 байтов. Использование Java 11 - йString#repeat
с прайм-регулярным выражением составляет 105 байт:v->{for(int n=7,i=3,r=0;;n+=i+=++r%2*3)if(!"x".repeat(n).matches(".?|(..+?)\\1+"))System.out.println(n);}
.%n
не обязательно, не так ли?Wolfram Language (Mathematica) , 83 байта
Попробуйте онлайн!
источник
Желе , 12 байт
Попробуйте онлайн!
Основано на методе @ Арно . Берет на stdin и возвращает столько кубинских простых чисел.
источник
Wolfram Language (Mathematica) , 83 байта
Это решение выведет n-е кубинское простое число с дополнительными преимуществами быстрой скорости и запоминания всех предыдущих результатов в символе f.
Попробуйте онлайн!
источник
Пробел , 180 байт
Буквы
S
(пробел),T
(табуляция) иN
(новая строка) добавляются только как подсветка.[..._some_action]
добавлено только в качестве объяснения.Выводит символ новой строки на неопределенный срок.
Попробуйте онлайн (только с необработанными пробелами, вкладками и новыми строками).
Объяснение в псевдокоде:
источник
Питон 3 ,
110108102 байтаМетод, аналогичный моему ответу Mathematica (т. Е.
isPrime(1+⌊¾n²⌋) else n++
), Использующий эту простейшую проверку и возвращающий анонимный бесконечный генераторПопробуйте онлайн!
count
с 2 +1, так чтоand x>1
в заимствованной мною первичной проверке нет необходимости -7источник
g=
. Я включил его только в первую очередь, потому что он позволял быстро визуализировать с TIOprint(next(g) for i in range(52))
.Japt ,
1413 байтАдаптировано из формулы Арно . 1-индексироваться.
Попытайся
1 байт сохранен благодаря EmbodimentOfIgnorance.
источник
(
.Ракетка , 124 байта
Попробуйте онлайн!
Возвращает n-е кубинское простое число с 0 индексами.
Использует формулу JavaScript-ответа @ Арно.
источник
Python 3 , 83 байта
печатает кубинские простые числа навсегда.
Попробуйте онлайн!
источник
Perl 6 ,
3331 байт-2 байта благодаря Грими
Попробуйте онлайн!
Блок анонимного кода, который возвращает бесконечный список кубинских простых чисел. При этом используется формула Арно для генерации возможных кубинских простых чисел, а затем
&is-prime
для их фильтрации.Объяснение:
источник
1+0+|
может быть просто1+|
Пари / ГП , 51 байт
Используя формулу Арно .
Попробуйте онлайн!
источник
APL (NARS), 98 символов, 196 байтов
с отступом:
тестовое задание:
он основан на: если у в N, один из возможных кубинских премьер
следующий возможный кубинский премьер будет
источник