우수한 합성 수


12

우수한 복합 수는 제수의 수에 대한 제곱수의 비율이 가능한 한 높은 정수입니다. 이것을 공식으로 표현 :

d (n)을 숫자 자체를 포함하여 n의 제수로하자. 주어진 정수 n에 대해, 모든 정수 k에 대해 d (n) / n ^ e가 d (k) / k ^ e보다 크거나 같은 수 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 개의 첫 번째 값을 처리 할 수있는 한 언어의 데이터 유형 제한까지만 올바른 프로그램을 만들 수 있습니다.

이것은 코드 골프입니다. 표준 허점이 적용됩니다.

답변:


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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.