La fonction de Landau ( OEIS A000793 ) donne l'ordre maximum d'un élément du groupe symétrique . Ici, l'ordre d'une permutation est le plus petit entier positif tel que est l'identité - qui est égal au plus petit multiple commun des longueurs des cycles dans la décomposition du cycle de la permutation. Par exemple, qui est obtenu par exemple par (1,2,3) (4,5,6,7) (8,9,10,11,12,13,14).
Par conséquent, est également égal à la valeur maximale de où avec entiers positifs.
Problème
Écrivez une fonction ou un programme qui calcule la fonction de Landau.
Contribution
Un entier positif .
Production
, l'ordre maximum d'un élément du groupe symétrique .
Exemples
n g(n)
1 1
2 2
3 3
4 4
5 6
6 6
7 12
8 15
9 20
10 30
11 30
12 60
13 60
14 84
15 105
16 140
17 210
18 210
19 420
20 420
But
C'est le code-golf : le programme le plus court en octets gagne. (Néanmoins, les implémentations les plus courtes dans plusieurs langues sont les bienvenues.)
Notez qu'aucune exigence n'est imposée à l'exécution; par conséquent, votre implémentation ne doit pas nécessairement être en mesure de générer tous les résultats d'exemple ci-dessus dans un délai raisonnable.
Les failles standard sont interdites.
Max[Apply@LCM/@IntegerPartitions@#]&
semble fonctionner pour moi et donnerait 36 octets si c'est correct.