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 .

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.