Вступление
Размещать все положительные числа в обычном порядке (1, 2, 3, ...) немного скучно, не правда ли? Итак, вот серия проблем, связанных с перестановками (перестановками) всех положительных чисел.
Первая задача в этой серии состоит в том, чтобы вывести a (n) для заданного n в качестве входных данных, где a (n) - это A064413 , также известный как последовательность ЭКГ, поскольку график его значений напоминает электрокардиограмму (отсюда и « Как это чувствую " эталон"). Интересные свойства этой последовательности заключаются в том, что все натуральные числа появляются ровно один раз. Еще одна примечательная особенность - все простые числа встречаются в возрастающем порядке.
задача
Для целочисленного ввода n выведите a (n).
определяется как:
- для , является наименьшим числом уже не используется , который разделяет фактор с
Примечание: здесь предполагается индексирование на основе 1; Вы можете использовать индексирование на основе 0, поэтому и т. д. Пожалуйста, укажите это в своем ответе, если вы решите использовать это.
Контрольные примеры
Input | Output
--------------
1 | 1
5 | 3
20 | 11
50 | 49
123 | 132
1234 | 1296
3000 | 3122
9999 | 10374
правила
- Вход и выход являются целыми числами (ваша программа должна по крайней мере поддерживать вход и выход в диапазоне от 1 до 32767)
- Неверный ввод (числа с плавающей запятой, строки, отрицательные значения и т. Д.) Может привести к непредсказуемым результатам, ошибкам или (не) определенному поведению.
- Применяются правила ввода / вывода по умолчанию .
- Лазейки по умолчанию запрещены.
- Это код-гольф , поэтому самые короткие ответы в байтах выигрывают
Конечная нота
Смотрите этот связанный вопрос PP & CG .
#>¹↑¡§ḟȯ←⌋→`-Nḣ2
и здесь!¡§ḟȯ←⌋→`-Nḣ2
будет делать ( попробуйте ). Определение «дубликат» не является «точно таким же, как». Я оставлю это на усмотрение других, так как не хочу закрывать это, потому что, возможно, что-то пропустил.a(n)
разделяет фактор , кроме 1 сa(n-1)
, поскольку каждое число акций 1 в качестве фактора. Кроме того, может ли мой ответ быть «2-индексирован», гдеa(2)
1,a(3)
2 и т. Д.?Ответы:
05AB1E , 25 байтов
0 индексированные
Объяснение:
источник
Haskell ,
66 6564 байтаПопробуйте онлайн!
источник
Haskell , 60 байт
Попробуйте онлайн!
Ноль-индексированные; может сохранить четыре байта, если ряд начинается с 2 (своего рода (-1) -индексированный, но без определения значения -1). Создает бесконечный список, лениво поддерживая список неиспользуемых чисел.
источник
Data.List
и использовалиdelete x
вместо негоfilter(/=x)
. Если это должно работать для больших аргументов, такая оптимизация быстро станет необходимой.delete
- это разумная вещь, но в Code-Golf нас это не волнует. Я иногда упоминаю более эффективные варианты, когда разница впечатляет или иным образом интересна. Здесь это не так уж и плохо: TIO может вычислить все тестовые случаи менее чем за 10 секунд.Python 2 , 104 байта
При этом используется индексирование на основе 0.
Попробуйте онлайн!
источник
Рубин, 86 байт
Это работает вечно для входных данных, таких как 10, хотя.
Вот версия с памяткой с 102 байтами, которая выполняется в приемлемое время:
источник
ЯЗЫК МАШИНЫ (X86, 32-битный) + функции библиотеки языка C malloc () / free (), байты 325
Выше gcd и функции ... Этот код сборки ниже генерирует функции и тестовую программу:
результаты:
Возможны ошибки и неправильное копирование прошлого ...
источник
Perl 6,
848073695049 байтов(0-индексированные)
Благодаря этому ответу за некоторые хитрости.
Спасибо ASCII-только за бритья.
источник
...
? Это делает последовательность вещей, как это намного проще. Например, вашmy@a=1,2;push @a,operation while condition
может быть1,2,{operation}...condition
. С несколькими другими гольфами это может быть всего 49 байтов.first
.APL (NARS), символы 119, байты 238
этот тест занимает 1: 49 здесь:
источник
Java (JDK) ,
161155152151 байтСохранение байта путем переключения
int[]
отслеживания, чтобы использовать существующиеBigInteger
!Попробуйте онлайн!
источник
Gaia , 27 байт
Попробуйте онлайн!
Индексирование на основе 1.
Работает довольно медленно, так как он пробует каждое целое число, пока не найдет
a(n)
.источник