首页
学习
活动
专区
圈层
工具
发布

计算MU数
EN

Code Golf用户
提问于 2017-07-13 15:19:20
回答 4查看 1.1K关注 0票数 19

前两个MU-数是2和3,其他MU-数是尚未出现的最小数,可以用一种方式表示为两个较早的不同MU-数的乘积。

这是前十名

代码语言:javascript
复制
2, 3, 6, 12, 18, 24, 48, 54, 96, 162

任务

给定一个正数,计算并输出第n个MU数.

这是一个密码-高尔夫竞争,所以你应该把你的源代码尽可能小。

OEIS A007335

EN

回答 4

Code Golf用户

发布于 2017-07-13 19:45:47

果冻,22 字节数

代码语言:javascript
复制
ŒcP€ḟ⁸ṢŒgLÞḢḢṭ
2,3Ç¡ị@

一个一元链接,1-索引。

在网上试试!

怎么做?

代码语言:javascript
复制
ŒcP€ḟ⁸ṢŒgLÞḢḢṭ - Link 1, add the next number: list, a  e.g. [2,3,6,12,18,24]
Œc             - unordered pairs                            [[2,3],[2,6],[2,12],[2,18],[2,24],[3,6],[3,12],[3,18],[3,24],[6,12],[6,18],[6,24],[12,18],[12,24],[18,24]]
  P€           - product of €ach                            [6,12,24,36,48,18,36,54,72,72,108,144,216,288,432]
     ⁸         - chain's left argument, a                   [2,3,6,12,18,24]
    ḟ          - filter discard                             [36,48,36,54,72,72,108,144,216,288,432]
      Ṣ        - sort                                       [36,36,48,54,72,72,108,144,216,288,432]
       Œg      - group runs of equal elements               [[36,36],[48],[54],[72,72],[108],[144],[216],[288],[432]]
          Þ    - sort by:
         L     -   length                                   [[48],[54],[108],[144],[216],[288],[432],[36,36],[72,72]]
           Ḣ   - head                                       [48]
            Ḣ  - head                                       48
             ṭ - tack to a                                  [2,3,6,12,18,24,48]

2,3Ç¡ị@ - Link: number, i                              e.g. 7
2,3     - literal [2,3]                                     [2,3]
    ¡   - repeat i times:
   Ç    -   call last link (1) as a monad                   [2,3,6,12,18,24,48,54,96]
     ị@ - index into with swapped @rguments (with i)        48
票数 3
EN

Code Golf用户

发布于 2017-07-13 17:09:09

Mathematica,154个字节

简单修改在oeis链接上找到的代码

代码语言:javascript
复制
(s={2,3};Do[n=Select[Split@Sort@Flatten@Table[s[[j]]s[[k]],{j,Length@s},{k,j+1,Length@s}],#[[1]]>s[[-1]]&&Length@#==1&][[1,1]];AppendTo[s,n],{#}];s[[#]])&
票数 1
EN

Code Golf用户

发布于 2017-07-13 17:48:20

Mathematica,140个字节

代码语言:javascript
复制
(t=1;s={2,3};While[t<#,s=AppendTo[s,Sort[Select[First/@Select[Tally[Times@@@Permutations[s,{2}]],#[[2]]==2&],#>Last@s&]][[1]]];t++];s[[#]])&
票数 1
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/132268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档