Divinacci ( OEIS )
Effectuez la séquence de Fibonacci mais au lieu d'utiliser:
f(n) = f(n-1)+f(n-2)
Utilisation:
f(n) = sum(divisors(f(n-1))) + sum(divisors(f(n-2)))
Pour une entrée de n
, sortez le nième terme, votre programme ne devrait avoir qu'une seule entrée.
14 premiers termes (index 0, vous pouvez 1 index; indiquez celui que vous avez utilisé):
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...
Vous pouvez choisir d'inclure ou non le 0 de tête. Pour ceux qui le font: les diviseurs de 0
sont []
dans le but de ce défi.
C'est le nombre de octets le plus bas du code-golf ...
Infinity
si vous le souhaitez.Réponses:
05AB1E , 9 octets
Essayez-le en ligne!
Explication
la source
Mathematica,
4540 octetsLes fonctions liées au diviseur de Mathematica
Divisors
,DivisorSum
et neDivisorSigma
sont pas toutes définies pour n = 0 (à juste titre), nous partons donc def(1) = f(2) = 1
et ne prenons pas en charge la saisie0
.Le définir comme un opérateur au lieu d'utiliser une fonction sans nom semble être plus long de deux octets:
la source
±
1 octet est utilisé dans un codage pris en charge par Mathematica.$CharacterEncoding
les machines Windows estWindowsANSI
, c.-à-d. CP 1252.)Perl 6 , 58 octets
Essayez-le en ligne!
la source
Haskell , 55 octets
Essayez-le en ligne!
Un index.
la source
Python 2 , 76 octets
Essayez-le en ligne!
Ridiculement lent.
la source
MATL,
1615 octetsCette solution utilise une indexation basée sur 0.
Essayez-le sur MATL Online
Explication
la source
Gelée ,
109 octetsEssayez-le en ligne!
Merci à Dennis pour -1.
la source
0
était implicite?¡
et d'autres vont juste essayer de prendre un argument de partout, même avec unƓ
? C'est assez inattendu ...¡
et al. prenez le dernier argument de ligne de commande et, s'il n'y en a pas, lit une ligne depuis STDIN.Python 3 ,
888381 octetsEssayez-le en ligne!
Exclut le
0
la source
Haskell ,
6460 octetsEssayez-le en ligne!
la source
PHP , 97 octets
Essayez-le en ligne!
PHP , 101 octets
Essayez-le en ligne!
la source
Pari / GP , 39 octets
Basé sur la réponse Mathematica de Martin Ender .
Essayez-le en ligne!
la source
R, 81 octets
1 indexé et exclut le 0 au début de la séquence. Ce zéro m'a donné beaucoup de mal à implémenter, car le builtin ne le gère
numbers::divisors
pas bien.Le reste est une version modifiée de la fonction récursive standard qui implémente la séquence fibonacci.
la source