Numeri altamente compositi superiori


12

Un numero altamente composito superiore è un numero intero in cui il rapporto tra il suo conteggio dei divisori e una certa potenza del numero è il più alto possibile. Esprimendolo come una formula:

Sia d (n) il numero di divisori di n, incluso il numero stesso. Per un dato numero intero n, se esiste un numero e tale che d (n) / n ^ e è maggiore o uguale a d (k) / k ^ e per ogni numero intero k, allora n è un numero altamente composito.

Per ulteriori informazioni, vedere Numero altamente composito superiore su Wikipedia o A002201 su OEIS.

Ecco i valori iniziali:

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

La tua sfida è prendere un indice n e produrre l'ennesimo numero in questa sequenza.

È possibile utilizzare l'indicizzazione 0 o 1 e creare un programma che sia corretto solo fino ai limiti dei tipi di dati della propria lingua, purché sia ​​in grado di gestire almeno i primi 10 valori.

Questo è il codice golf. Si applicano scappatoie standard .

Risposte:


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

ingresso

[21]

produzione

6064949221531200

ingresso

[50]

produzione

247899128073275948560051200231228551175691632580942972608000

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.