Дивиначи ( OEIS )
Выполните последовательность Фибоначчи, но вместо использования:
f(n) = f(n-1)+f(n-2)
Использование:
f(n) = sum(divisors(f(n-1))) + sum(divisors(f(n-2)))
Для ввода n
, вывода n-го члена ваша программа должна иметь только 1 вход.
Первые 14 терминов (0-проиндексированы, вы можете 1-индекс; укажите, что вы использовали):
0 | 0 # Initial | []
1 | 1 # Initial | [1] => 1
2 | 1 # [] + [1] | [1] => 1
3 | 2 # [1] + [1] | [1,2] => 3
4 | 4 # [1] + [1,2] | [1,2,4] => 7
5 | 10 # [1,2] + [1,2,4] | [1,2,5,10] => 18
6 | 25 # [1,2,4] + [1,2,5,10] | [1,5,25] => 31
7 | 49 # [1,2,5,10] + [1,5,25] | [1,7,49] => 57
8 | 88 # [1,5,25] + [1,7,49] | [1, 2, 4, 8, 11, 22, 44, 88] => 180
9 | 237 # [1,7,49] + [180] | [1, 3, 79, 237] => 320
10 | 500 # [180] + [320] | [1, 2, 4, 5, 10, 20, 25, 50, 100, 125, 250, 500] => 1092
11 | 1412 # [320] + [1092] | [1, 2, 4, 353, 706, 1412] => 2478
12 | 3570 # [1092] + [2478] | [1, 2, 3, 5, 6, 7, 10, 14, 15, 17, 21, 30, 34, 35, 42, 51, 70, 85, 102, 105, 119, 170, 210, 238, 255, 357, 510, 595, 714, 1190, 1785, 3570] => 10368
13 | 12846 # [2478] + [10368] | [1, 2, 3, 6, 2141, 4282, 6423, 12846] => 25704
Etc...
Вы можете выбрать, включать ли ведущий 0. Для тех, кто это делает: делители 0
предназначены []
для этой задачи.
Это код-гольф, выигрывает самый низкий счетчик байтов ...
Infinity
если хотите.Ответы:
05AB1E , 9 байтов
Попробуйте онлайн!
объяснение
источник
Mathematica,
4540 байтФункции Mathematica, связанные с делителями
Divisors
,DivisorSum
иDivisorSigma
все они не определены для n = 0 (правильно), поэтому мы начинаем сf(1) = f(2) = 1
и не поддерживаем ввод0
.Определение его как оператора вместо использования безымянной функции кажется на два байта длиннее:
источник
±
в кодировке, поддерживаемой Mathematica, 1 байт.$CharacterEncoding
компьютеров Windows -WindowsANSI
например, CP 1252.)Perl 6 , 58 байт
Попробуйте онлайн!
источник
Haskell , 55 байтов
Попробуйте онлайн!
Один индексированные.
источник
Python 2 , 76 байт
Попробуйте онлайн!
Смешно медленно.
источник
MATL,
1615 байтВ этом решении используется индексация на основе 0.
Попробуйте это на MATL Online
объяснение
источник
Желе ,
109 байтПопробуйте онлайн!
Спасибо Деннису за -1.
источник
0
было неявным?¡
и другие просто попытаются взять аргумент отовсюду, даже сƓ
? Это довольно неожиданно ...¡
et al. принять последний аргумент командной строки и, если его нет, читает строку из STDIN.Python 3 ,
888381 байтПопробуйте онлайн!
Исключает
0
источник
Haskell ,
6460 байтПопробуйте онлайн!
источник
PHP , 97 байт
Попробуйте онлайн!
PHP , 101 байт
Попробуйте онлайн!
источник
Пари / ГП , 39 байт
Основано на ответе Mathematica Мартина Эндера .
Попробуйте онлайн!
источник
R, 81 байт
1 индексируется и исключает 0 в начале последовательности. Этот ноль дал мне много проблем для реализации, потому что встроенный
numbers::divisors
не справляется с этим хорошо.Остальное - модифицированная версия стандартной рекурсивной функции, которая реализует последовательность Фибоначчи.
источник