Я называю эту последовательность «последовательность Иисуса», потому что это сумма мод . </ Pun>
Для этой последовательности вы берете все натуральные числа m меньше, чем вход n , и берете сумму n по модулю каждого m . Другими словами:
Например, возьмем термин 14 :
14 % 1 = 0
14 % 2 = 0
14 % 3 = 2
14 % 4 = 2
14 % 5 = 4
14 % 6 = 2
14 % 7 = 0
14 % 8 = 6
14 % 9 = 5
14 % 10 = 4
14 % 11 = 3
14 % 12 = 2
14 % 13 = 1
0+0+2+2+4+2+0+6+5+4+3+2+1=31
Ваша цель здесь - написать функцию, которая реализует эту последовательность. Вы должны взять член последовательности (это будет положительное целое число от 1 до 2 31 ) в качестве единственного входа и вывести значение этого члена. Это OEIS A004125 .
Как всегда, применяются стандартные лазейки и выигрывает самый короткий ответ в байтах!
Рубин ,
282723 байта-4 байта благодаря @daniero.
Попробуйте онлайн!
Рубин, 28 байт
Попробуйте онлайн!
источник
Фанки , 25 байт
Просто наивный ответ, похоже, работает.
Попробуйте онлайн!
Desmos , 25 байт.
Вставьте в Desmos, затем запустите его, позвонив
f
.При вставке в Desmos латекс выглядит следующим образом
Однако график выглядит так
Хотя это выглядит случайным и повсюду, это результат только поддержки целых чисел.
RProgN 2 , 9 байт
Разъяснения
Попробуйте онлайн!
ReRegex , 71 байт
Попробуйте онлайн!
ARBLE , 19 байт
Попробуйте онлайн!
MaybeLater , 56 байт
Попробуйте онлайн!
источник
Желе , 3 байта
объяснение
Попробуйте онлайн!
источник
MATL , 4 байта
Попробуйте онлайн!
Объяснение:
источник
Ом v2 , 4 байта
Попробуйте онлайн!
источник
R, 20 байтов
Попробуйте онлайн!
источник
Python 2 , 44 байта
Попробуйте онлайн!
РЕДАКТИРОВАТЬ: изменение диапазона (0, n) на диапазон (n)
источник
range
неявно принимает первый аргумент0
, поэтому вы можете сократить это на два байта, выполнивrange(n)
вместо этого.map
38 байтов: попробуйте онлайн!JavaScript (ES6), 26 байт
демонстрация
Показать фрагмент кода
источник
Python 3 , 37 байт
Попробуйте онлайн!
источник
Древесный уголь , 9 байт
Попробуйте онлайн!
Ссылка на подробную версию кода:
источник
Стандартный ML (MLton) ,
5351 байтПопробуйте онлайн!
Ungolfed:
Предыдущая 53-байтовая версия:
Попробуйте онлайн!
Объяснение:
List.tabulate
берет целое числоx
и функциюf
и генерирует список[f 0, f 1, ..., f(x-1)]
. Учитывая некоторое числоn
, мы вызываемList.tabulate
с помощьюn-1
и функцию,fn i=>n mod(i+1)
чтобы избежать деления на ноль. Результирующий список суммируется сfoldl op+0
.источник
Java (OpenJDK 8) , 45 байт
Попробуйте онлайн!
источник
-->
оператора go to ( ).Mathematica , 18 байт
Попробуйте онлайн!
источник
Tr[#~Mod~Range@#]&
APL (Dyalog) , 5 байтов
Попробуйте онлайн!
Как?
Монадический поезд -
+/
- сумма⊢
-n
|
- векторизация по модулю⍳
- ассортиментn
источник
Japt ,
65 байтСохранено 1 байт благодаря @Shaggy
Проверьте это онлайн!
Как это работает
источник
05AB1E , 6 байтов
Попробуйте онлайн!
Моя первая программа 05AB1E;)
Кстати, я получил два 39, 1 для JS6 и 1 для Python, но я опоздалОбъяснение:
источник
Рубин , 23 байта
Попробуйте онлайн!
источник
Юлия 0,4, 15 байт
Попробуйте онлайн!
источник
Добавить ++ , 14 байт
Попробуйте онлайн!
Как это работает
источник
4 , 67 байт
4 не имеет встроенного модуля .
Попробуйте онлайн!
источник
Пакет Windows (CMD), 63 байта
Предыдущая 64-байтовая версия:
источник
T-SQL,
80-79 байт-1 байт благодаря @MickyT
Получает входные данные от целочисленного параметра с именем
@
, примерно так:Использует общее табличное выражение для генерации чисел из
1
вn
. Затем использует этот cte для суммирования модулей.Примечание: для cte необходимо указать
;
между предыдущим оператором и cte. Большая часть кода, который я видел, ставит;
прямо перед объявлением, но в этом случае я могу сохранить байт, поместив его в оператор ввода (поскольку технически мой код сам по себе является единственным оператором).Попробуй это (СЕДЕ)
Менее "SQL-у" способ составляет всего 76 байтов. На этот раз входная переменная
@i
вместо@
(сохраняет один байт). Этот просто делаетwhile
цикл.источник
PHP , 61 байт
-2 байта для удаления закрывающего тега
Попробуйте онлайн!
источник
Japt
-mx
, 3 байтаПопробуйте онлайн!
источник
Брахилог , 9 байт
Попробуйте онлайн!
источник
Шелуха , 5 байт
Попробуйте онлайн!
объяснение
источник
Perl 5 , 23 + 1 (
-p
) = 24 байтаПопробуйте онлайн!
источник
Pyth , 5 байт
Попробуйте онлайн!
источник