La funzione Landau ( OEIS A000793 ) fornisce l'ordine massimo di un elemento del gruppo simmetrico . Qui, l'ordine di una permutazione è il più piccolo intero positivo tale che è l'identità - che è uguale al multiplo meno comune delle lunghezze dei cicli nella decomposizione del ciclo della permutazione. Ad esempio, che si ottiene ad esempio da (1,2,3) (4,5,6,7) (8,9,10,11,12,13,14).
Pertanto, è uguale anche al valore massimo di in cui con interi positivi.
Problema
Scrivi una funzione o un programma che calcola la funzione di Landau.
Ingresso
Un numero intero positivo .
Produzione
, l'ordine massimo di un elemento del gruppo simmetrico .
Esempi
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
Punto
Questo è code-golf : vince il programma più breve in byte. (Tuttavia, le implementazioni più brevi in più lingue sono benvenute.)
Si noti che non sono previsti requisiti per il runtime; pertanto, l'implementazione non deve necessariamente essere in grado di generare tutti i risultati dell'esempio sopra riportato in tempi ragionevoli.
Sono vietate le scappatoie standard.
Max[Apply@LCM/@IntegerPartitions@#]&
sembra funzionare per me e darebbe 36 byte se è corretto.