Numéros hautement composites supérieurs

12

Un nombre hautement composite supérieur est un entier où le rapport de son nombre de diviseurs à une certaine puissance du nombre est aussi élevé que possible. Exprimant cela sous forme de formule:

Soit d (n) le nombre de diviseurs de n, y compris le nombre lui-même. Pour un entier donné n, s'il existe un nombre e tel que d (n) / n ^ e est supérieur ou égal à d (k) / k ^ e pour chaque entier k, alors n est un nombre hautement composite.

Pour en savoir plus, voir Nombre hautement composite supérieur sur Wikipedia, ou A002201 sur OEIS.

Voici les valeurs initiales:

2, 6, 12, 60, 120, 360, 2520, 5040, 55440, 720720, 1441440, 4324320, 21621600, 367567200, 6983776800, 13967553600, 321253732800, 2248776129600, 65214507758400, 195643523275200, 6064949221531200

Votre défi est de prendre un index n et de sortir le nième nombre dans cette séquence.

Vous pouvez utiliser l'indexation 0 ou 1, et vous pouvez créer un programme qui n'est correct que dans les limites des types de données de votre langue, tant qu'il peut gérer au moins les 10 premières valeurs.

C'est le golf de code. Des échappatoires standard s'appliquent.

isaacg
la source

Réponses:

3

Mathematica, 277 octets

(A=AppendTo;p[f_]:=Module[{p=f[[1]],k=f[[2]]},N[Log[(k+2)/(k+1)]/Log[p]]];m=#;f={{2,1},{3,0}};o=1;l={2};x=Table[p[f[[i]]],{i,o+1}];For[n=2,n<=m,n++,i=Position[x,Max[x]][[1,1]];A[l,f[[i,1]]];f[[i,2]]++;If[i>o,o++;A[f,{Prime[i+1],0}];A[x,p[f[[-1]]]]];x[[i]]=p[f[[i]]]];Times@@l)&

contribution

[21]

production

6064949221531200

contribution

[50]

production

247899128073275948560051200231228551175691632580942972608000

J42161217
la source