Bilangan Unggul Sangat Komposit

12

Angka komposit yang sangat unggul adalah bilangan bulat di mana rasio jumlah pembagi terhadap beberapa kekuatan nomor setinggi mungkin. Mengekspresikan ini sebagai formula:

Biarkan d (n) menjadi jumlah pembagi n, termasuk nomor itu sendiri. Untuk bilangan bulat n yang diberikan, jika ada bilangan e sehingga d (n) / n ^ e lebih besar dari atau sama dengan d (k) / k ^ e untuk setiap bilangan bulat k, maka n adalah bilangan yang sangat komposit.

Untuk lebih lanjut, lihat Nomor unggul sangat komposit di Wikipedia, atau A002201 di OEIS.

Berikut adalah nilai awal:

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

Tantangan Anda adalah mengambil indeks n, dan menampilkan nomor ke-n dalam urutan ini.

Anda dapat menggunakan pengindeksan 0 atau 1, dan Anda dapat membuat program yang hanya benar hingga batas tipe data bahasa Anda, selama itu dapat menangani 10 nilai pertama minimum.

Ini golf kode. Celah standar berlaku.

isaacg
sumber

Jawaban:

3

Mathematica, 277 byte

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

memasukkan

[21]

keluaran

6064949221531200

memasukkan

[50]

keluaran

247899128073275948560051200231228551175691632580942972608000

J42161217
sumber