Определение последовательности
Построить последовательность натуральных чисел a(n)
следующим образом:
a(0) = 4
- Каждый член
a(n)
, кроме первого, является наименьшим числом, которое удовлетворяет следующему:
а)a(n)
является составным числом,
б)a(n) > a(n-1)
и
в)a(n) + a(k) + 1
является составным числом для каждого0 <= k < n
.
Итак, начнем с a(0) = 4
. Следующая запись a(1)
должна быть 9
. Это не может быть 5
или 7
потому что они не являются составными, и это не может быть 6
или 8
потому что 6+4+1=11
не является составным и 8+4+1=13
не составным. Наконец, 9+4+1=14
что является составным, так a(1) = 9
.
Следующая запись a(2)
должна быть 10
, так как это наименьшее число больше, чем 9
с 10+9+1=20
и 10+4+1=15
оба составные.
Для следующей записи, 11
и 13
оба отсутствуют, потому что они не составные. 12
вне, потому 12+4+1=17
что не является составным. 14
вне, потому 14+4+1=19
что не является составным. Таким образом, 15
это следующий член последовательности , потому что 15
это композитный и 15+4+1=20
, 15+9+1=25
и 15+10+1=26
все каждый композит, поэтому a(3) = 15
.
Вот первые 30 членов в этой последовательности:
4, 9, 10, 15, 16, 22, 28, 34, 35, 39, 40, 46, 52, 58, 64, 70, 75, 76, 82, 88, 94, 100, 106, 112, 118, 119, 124, 125, 130, 136
Это OEIS A133764 .
Вызов
Учитывая входное целое число n
, выведите n
th-й член в этой последовательности.
правила
- Вы можете выбрать индексацию на основе 0 или 1. Пожалуйста, укажите, что в вашем представлении.
- Можно предположить, что ввод и вывод соответствуют целочисленному типу вашего языка.
- Вход и выход могут быть заданы любым удобным способом .
- Либо полная программа или функция приемлемы. Если функция, вы можете вернуть вывод, а не распечатать его.
- Стандартные лазейки запрещены.
- Это код-гольф, поэтому применяются все обычные правила игры в гольф, и выигрывает самый короткий код (в байтах).
Ответы:
Шелуха , 11 байт
1-индексироваться. Попробуйте онлайн!
объяснение
источник
Perl 6 , 70 байт
Попробуйте 0-indexed
Expanded:
источник
Python 2 ,
112107 байтспасибо мистеру Xcoder за байт.
Попробуйте онлайн!
Python 2 ,
115109 байтПопробуйте онлайн!
источник
JavaScript (ES6), 83 байта
1-индексированных
демонстрация
Показать фрагмент кода
комментарии
Вспомогательная функция P () , возвращающая true, если n простое, или false в противном случае:
NB: он должен быть вызван с x = n .
Основная функция f () :
источник
05AB1E , 21 байт
0 индексированные
Попробуйте онлайн!
источник
Wolfram Language (Mathematica) , 65 байт
Использует кодировку CP-1252 (Windows по умолчанию). 1-индексироваться.
Попробуйте онлайн!
источник
Java 8,
186173 байта0 индексированные.
К сожалению, простые проверки (или анти-простые / составные проверки в этом случае) не так дешевы в Java.
Объяснение:
Попробуйте онлайн.
источник
Ruby +
-rprime
,8575 байтПопробуйте онлайн!
Лямбда, возвращающая 0-индексированный n-й элемент.
-10 байт: использовать
redo
и троичный оператор вместоloop
...break
и условную цепочкуUngolfed:
источник
C (gcc) , 170 байт
Попробуйте онлайн!
источник
C (gcc) ,
140138 байтСпасибо @Jonathan Frech за сохранение двух байтов!
0 индексированные
Попробуйте онлайн!
источник
++k,j=0
может быть дваждыj=!++k
, 138 байт .