Números superiores altamente compuestos

12

Un número superior altamente compuesto es un número entero donde la relación de su recuento de divisores a alguna potencia del número es lo más alta posible. Expresando esto como una fórmula:

Sea d (n) el número de divisores de n, incluido el número mismo. Para un número entero dado n, si existe un número e tal que d (n) / n ^ e es mayor o igual que d (k) / k ^ e para cada número entero k, entonces n es un número altamente compuesto.

Para obtener más información, consulte Número superior altamente compuesto en Wikipedia o A002201 en OEIS.

Aquí están los valores iniciales:

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

Su desafío es tomar un índice n, y generar el enésimo número en esta secuencia.

Puede usar 0 o 1 indexación, y puede hacer un programa que solo sea correcto hasta los límites de los tipos de datos de su idioma, siempre que pueda manejar los primeros 10 valores como mínimo.

Este es el código de golf. Se aplican lagunas estándar .

isaacg
fuente

Respuestas:

3

Mathematica, 277 bytes

(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)&

entrada

[21]

salida

6064949221531200

entrada

[50]

salida

247899128073275948560051200231228551175691632580942972608000

J42161217
fuente