充满素数


13

注意:这是受此问题启发的。

任务:

您的任务是n在程序的每个字符重复执行n到位时生成素数。

假设您的程序是:

Derp

其中的每个字符都重复一次,因此应输出2

当每个字符都复制到位时,如下所示:

DDeerrpp

这将生成第二个素数,即3

眼镜:

  • 您的程序必须不接受任何输入,并输出相应的质数。
  • 给定足够的时间和内存,您的程序必须能在所有素数下工作。
  • 开头和结尾的换行符都可以。
  • 输出必须使用该语言的默认基础-如果没有默认基础,则任何基础都可以。

这是,因此以字节为单位的最短代码获胜。


6
给定足够的时间和内存,您的程序是否必须适用于所有素数?意味着我不能使用,例如int in C?
丹尼斯,

Answers:


21

果冻,13 个字节

“Ŀo‘’FQỌµḟ;¹V

在线尝试!或者运行前十个程序

背景

Jelly有几种不同类型的字符串文字。所有这些都以。开头。如果文字包含多个,则返回一个字符串数组,并将字符串彼此分开。

例如,“abc“def”yields ['abc', 'def']

根据文字的最后一个字符(当前未实现的任何”«»‘’«),可以在不同类型的文字之间进行选择。对于,我们在Jelly的代码页中获得代码点,而不是相应的Unicode字符。

例如,“abc“def‘yields [[97, 98, 99], [100, 101, 102]]

前三个程序中的文字对应于以下代码点数组。

“Ŀo‘           -> [199, 111]
““ĿĿoo‘        -> [[], [199, 199, 111, 111]]
“““ĿĿĿooo‘     -> [[], [], [199, 199, 199, 111, 111, 111]]

工作原理(n = 3

“““ĿĿĿooo‘‘‘’’’FFFQQQỌỌỌµµµḟḟḟ;;;¹¹¹VVV  Main link. Implicit argument: 0

“““ĿĿĿooo‘                               Yield the 2D array
                                         [[], [], [199, 199, 199, 111, 111, 111]].
          ‘‘                             Increment twice, yielding
                                         [[], [], [201, 201, 201, 113, 113, 113]].
            ’’’                          Decrement thrice, yielding
                                         [[], [], [198, 198, 198, 110, 110, 110]].
               F                         Flatten, yielding
                                         [198, 198, 198, 110, 110, 110].
                FF                       Twice more. Does nothing.
                  Q                      Unique; yield [198, 110].
                   QQ                    Twice more. Does nothing.
                     Ọ                   Unordinal; convert the Unicode code points
                                         198 and 110 to 'Æ' and 'n'.
                      ỌỌ                 Twice more. Does nothing.
                        µµµ              Begin three monadic chains, all with
                                         argument s := "Æn".
                           ḟ             Filter-false; remove the characters of s
                                         from s, yielding "".
                            ḟḟ           Twice more. Does nothing.
                              ;;;¹       Concatenate with s three times, yielding
                                         "ÆnÆnÆn".
                                  ¹¹     Identity function. Does nothing.
                                    V    Eval the resulting Jelly code, i.e.,
                                         call the next-prime atom thrice, with
                                         initial implicit argument 0.
                                     VV  Eval two more times. This is a no-op
                                         on integers.

1
这绝对是需要解释的……并且取决于它的布局方式,它可能是唯一可以做到这一点的语言?
价值墨水

6
什么怎么 那简直太快了。
clismique

@ValueInk我已经编辑了答案。
丹尼斯,

21

GS2(commit 67fea47),6 3个字节

dnR

怎么运行的

像大多数命令一样,GS2 d过载。最初,堆栈上有一个空列表(输入或缺少输入),因此d计算其总和。第一次迭代后,堆栈上有一个0,并d计算其奇偶校验(也为0)。因此,无论我们重复多少次d,结果始终为0

下一部分很简单。该命令将n弹出堆栈的顶部,并推入下一个质数。因此,重复n k次可计算出k 主要。

最后,该命令仅将str应用于堆栈的顶部,这会将数字转换为其字符串表示形式,并且不影响字符串。因此,无论我们重复多少次R,结果都将是k的字符串表示形式 主要。


2
到底怎么回事!?
downrep_nation

3
不要复苏
数字创伤
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.