卓越的高复合数


12

较高的高复合数是一个整数,其中其除数的数量与该数字的幂的比率应尽可能大。用公式表示:

令d(n)是n的除数,包括数字本身。对于给定的整数n,如果存在一个数字e,使得每个整数k的d(n)/ n ^ e都大于或等于d(k)/ k ^ e,则n是一个高度合成的数。

有关更多信息,请参见Wikipedia上的“ 高级高级综合号码”,或OEIS上的A002201

这是初始值:

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

您的挑战是获取索引n,并按此顺序输出第n个数字。

您可以使用0或1索引,并且可以制作一个仅在您的语言的数据类型的限制范围内正确的程序,只要它至少可以处理前10个值即可。

这是代码高尔夫。有标准漏洞

Answers:


3

Mathematica,277个字节

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

输入

[21]

输出

6064949221531200

输入

[50]

输出

247899128073275948560051200231228551175691632580942972608000

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.