Введение (может быть проигнорировано)
Размещать все положительные числа в обычном порядке (1, 2, 3, ...) немного скучно, не правда ли? Итак, вот серия проблем, связанных с перестановками (перестановками) всех положительных чисел. Это третья задача в этой серии (ссылки на первую и вторую задачи).
В этой задаче мы упорядочим натуральные числа в строках возрастающей длины таким образом, чтобы сумма каждой строки была простым числом. Что меня действительно удивляет, так это то, что каждое натуральное число имеет место в этом расположении. Номера не пропущены!
Эта визуализация этого расположения выглядит следующим образом:
row numbers sum
1 1 1
2 2 3 5
3 4 5 8 17
4 6 7 9 15 37
5 10 11 12 13 21 67
6 14 16 17 18 19 23 107
etc.
Мы можем прочитать элементы из строк в этом треугольнике. Первые 20 элементов: 1, 2, 3, 4, 5, 8, 6 , 7, 9, 15, 10, 11, 12, 13, 21, 14, 16, 17, 18, 19 ( да, есть песня New Order, спрятанная в этой последовательности ).
Поскольку это задача «чистой последовательности», задача состоит в том, чтобы вывести для заданного качестве входных данных, где равно A162371 .
задача
Для целочисленного ввода выведите в целочисленном формате.
определяется как й элемент самой ранней лексикографической перестановки натуральных чисел, такой, что при рассмотрении в виде треугольника, читаемого по строкам, при n> 1 суммы строк являются простыми числами. Поскольку первый лексикографическом перестановки натуральных чисел начинается с 1, ( 1 ) равно 1. Следует отметитьчто по этому определению а ( 1 ) = 1 и ( 1 ) являетсянеобязан быть простым. Это последовательность OEISA162371.
Примечание: здесь предполагается индексирование на основе 1; Вы можете использовать индексирование на основе 0, поэтому и т. д. Пожалуйста, укажите это в своем ответе, если вы решите использовать это.
Контрольные примеры
Input | Output
---------------
1 | 1
5 | 5
20 | 19
50 | 50
78 | 87
123 | 123
1234 | 1233
3000 | 3000
9999 | 9999
29890 | 29913
правила
- Вход и выход являются целыми числами (ваша программа должна по крайней мере поддерживать вход и выход в диапазоне от 1 до 32767)
- Неверный ввод (0, значения с плавающей запятой, строки, отрицательные значения и т. Д.) Может привести к непредсказуемому выводу, ошибкам или (не) определенному поведению.
- Применяются правила ввода / вывода по умолчанию .
- Лазейки по умолчанию запрещены.
- Это код-гольф , поэтому самые короткие ответы в байтах выигрывают