Números superiores altamente compostos


12

Um número superior e altamente composto é um número inteiro em que a proporção de sua contagem de divisores e alguma potência do número é a mais alta possível. Expressando isso como uma fórmula:

Seja d (n) o número de divisores de n, incluindo o próprio número. Para um número inteiro n, se existe um número e tal que d (n) / n ^ e é maior ou igual a d (k) / k ^ e para cada número inteiro k, então n é um número altamente composto.

Para saber mais, consulte Número altamente composto superior na Wikipedia ou A002201 na OEIS.

Aqui estão os valores iniciais:

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

Seu desafio é pegar um índice n e gerar o enésimo número nessa sequência.

Você pode usar a indexação 0 ou 1 e criar um programa que esteja correto apenas até os limites do (s) tipo (s) de dados do seu idioma, desde que ele consiga lidar com os 10 primeiros valores no mínimo.

Isso é código de golfe. Aplicam-se brechas padrão .

Respostas:


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]

resultado

6064949221531200

entrada

[50]

resultado

247899128073275948560051200231228551175691632580942972608000

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.