Покращені високоскладені номери


12

Вище високоскладене число - це ціле число, де відношення його кількості дільників до деякої потужності числа є максимально можливим. Висловивши це як формулу:

Нехай d (n) - кількість дільників n, включаючи саме число. Для даного цілого числа n, якщо існує число e таке, що d (n) / n ^ e більше або дорівнює d (k) / k ^ e для кожного цілого k, то n - високоскладене число.

Докладніше див. Superior високоскладений номер у Вікіпедії або A002201 в OEIS.

Ось початкові значення:

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 значень як мінімум.

Це код гольфу. Застосовуються стандартні лазівки .

Відповіді:


3

Математика, 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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.