Questions tagged «primes»

遇到有关识别和处理质数的挑战

10
升序矩阵
“升序矩阵”是整数(包括0)的无限矩阵,其中任何元素是最小的可用元素,之前尚未在相应的行和列上使用: | 1 2 3 4 5 6 ... --+---------------- 1 | 0 1 2 3 4 5 ... 2 | 1 0 3 2 5 4 ... 3 | 2 3 0 1 6 7 ... 4 | 3 2 1 0 7 6 ... 5 | 4 5 …
17 code-golf  math  matrix  programming-puzzle  code-golf  music  code-challenge  programming-puzzle  code-golf  fastest-code  code-golf  number  game  code-golf  combinatorics  code-golf  math  sequence  restricted-complexity  code-golf  number  random  code-golf  array-manipulation  code-golf  math  matrix  code-golf  number  sequence  counting  code-golf  math  number  sequence  popularity-contest  number  sequence  code-golf  music  code-golf  number  code-golf  ascii-art  arithmetic  code-golf  code-golf  number  code-golf  code-challenge  array-manipulation  code-golf  grammars  code-challenge  polyglot  code-golf  game  math  python  programming-puzzle  code-challenge  king-of-the-hill  code-challenge  fastest-code  primes  number-theory  number-theory  primes  fastest-code  factoring  popularity-contest  compile-time  code-golf  math 

30
查找非素数
如果您选择接受它,那么您面临的挑战是对一个数字满足以下条件的函数进行编码,该函数将返回true或false(或者是yes和no的某种类似有意义的表示形式): 整数本身是质数或 它的任何一个相邻整数都是素数 例如: 的输入7将返回True。 输入8也会返回True。 输入15会返回False。(14、15或16都不是素数) 输入必须能够正确返回2 ^ 0到2 ^ 20之间的数字,因此无需担心符号问题或整数溢出。

30
从原动力中恢复动力
似乎很多人都想拥有此功能,因此现在是此挑战的续集! 定义:素数幂是自然数,可以以p n的形式表示,其中p是素数,n是自然数。 任务:给定素数幂p n > 1,返回幂n。 测试用例: input output 9 2 16 4 343 3 2687 1 59049 10 计分:这是代码高尔夫球。以字节为单位的最短答案将获胜。

10
以前的复合数字
序列定义 构造正整数序列,a(n)如下所示: a(0) = 4 a(n)除第一项外,每个项都是满足以下条件的最小数: a)a(n)是一个复合数, b)a(n) > a(n-1), c)a(n) + a(k) + 1是每个复合数0 <= k < n。 因此,我们从开始a(0) = 4。下一个条目a(1)必须为9。它不能为5或7因为它们不是复合的,所以不能为6或8因为6+4+1=11不是复合8+4+1=13的也不是复合的。最后9+4+1=14是,因此是a(1) = 9。 下一个条目a(2)必须为10,因为它是9与10+9+1=20和10+4+1=15一起大于两者的最小数字。 对于下一个条目,11并且13都是,因为他们没有复合。12之所以出来是因为12+4+1=17这不是复合的。14之所以出来是因为14+4+1=19这不是复合的。因此,15是所述序列的下一个术语,因为15是复合材料和15+4+1=20,15+9+1=25以及15+10+1=26是所有各复合,所以a(3) = 15。 以下是此顺序中的前30个术语: 4, 9, 10, 15, 16, 22, 28, 34, 35, 39, 40, 46, 52, 58, 64, 70, 75, 76, 82, 88, 94, …

16
素数的素数
出于此挑战的目的,素数的素数(PPP)定义为一个数字,可以定义为素数对素数的幂。例如,9是PPP,因为它可以表示为3 ^ 2。另一方面,81不是PPP,因为它只能表示为3 ^ 4,而4不是质数。头几个PPP是:4,8,9,25,27,32,49,121,125,128,169,243,289,343 ...这是OEIS序列A053810 你的任务: 编写一个程序或函数,使其对于输入整数n返回/输出第n个PPP(1索引或0索引),无论您喜欢哪个。 输入: 通过任何合理的方法获得的0到1,000之间的整数。 输出: 输入指示的索引处的PPP。 测试用例: 它们是1索引的,因此,如果您的程序采用0索引的输入,则对于指定的输入-1应该达到相同的输出。 3 -> 9 6 -> 32 9 -> 125 得分: 此代码高尔夫球,最低得分(以字节为单位)获胜!

3
Miller-Rabin强伪素数
给定一个非负整数N,将最小的奇数正整数输出为所有第一个N素数基数的强伪质数。 这是OEIS序列A014233。 测试用例(一索引) 1 2047 2 1373653 3 25326001 4 3215031751 5 2152302898747 6 3474749660383 7 341550071728321 8 341550071728321 9 3825123056546413051 10 3825123056546413051 11 3825123056546413051 12 318665857834031151167461 13 3317044064679887385961981 的测试用例N > 13不可用,因为尚未找到这些值。如果您设法按顺序查找下一个术语,请务必将其提交给OEIS! 规则 您可以选择采用N零索引或一索引的值。 您的解决方案只适用于语言整数范围内的可表示值是可接受的(最多适用N = 12于无符号64位整数),但是理论上您的解决方案必须在假设您的语言支持任意长度整数的情况下适用于任何输入。 背景 任何正偶数x可以写成如下形式x = d*2^s,其中d为奇数。d并且s可以通过反复分割计算n由2,直到商是通过2不再整除d是最终商,并且s是的2所划分的数目n。 如果一个正整数n是质数,那么费马小定理说明: 在任何有限域 Z/pZ(其中p有一些素数)中,的唯一平方根1是1和-1(或等价地为1和p-1)。 我们可以使用这三个事实来证明以下两个语句之一对于素数必须为true n(其中d*2^s = n-1和r是中的一些整数[0, s)): 的米勒罗宾素性测试操作通过测试上述权利要求的对换句:如果有一个基座a,使得上述两个条件都为假,则n不是素数。该基地a被称为见证人。 …

9
最小乘数,可显示半素数的因子
给定一个半素数 N,找到最小的正整数m,这样就可以在N * m的二进制表示形式中找到N的两个因子之一的二进制表示形式。 例 让我们考虑半素数N = 9799。 我们尝试从1开始的m的不同值: m | N * m | N * m in binary ---+--------+------------------ 1 | 9799 | 10011001000111 2 | 19598 | 100110010001110 3 | 29397 | 111001011010101 4 | 39196 | 1001100100011100 5 | 48995 | 1011111101100011 6 | 58794 | …

15
前x个素数中的加法素数
附加质数的定义: 其中恰好有2除数的数称为素数。 质数及其位数之和也是质数称为加数质数 任务: 给定一个整数x,计算第一个x素数中的所有加法素数,同时2考虑第一个素数和加法素数。数字以10为基数表示。 规则: 输出由第一个x素数中的所有加法素数组成 0 < x < 151,针对这一挑战,出于功能目的 由于加性质数均为整数,因此不允许使用小数(例如:您应输出2,而不是2.0),并且它们不得显示为小数。 例子: 10 -> 2 3 5 7 11 23 29 说明: 前10个素数是2 3 5 7 11 13 17 19 23 29,并且仅2 3 5 7 11 23 29具有它们的数位素数之和,分别是2,3,5,7,2,5,11,所以它们是加法素数 根据的说明example 1,其他测试用例可能是: 2 -> 2 3 25 -> 2 3 …

1
怀旧素数生成器
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 3年前关闭。 还记得过去的美好时光,因为打开一个简单的文档或网页非常缓慢,因为它占用了计算机的所有微薄资源?而如今,尽管您的处理器速度提高了数百倍,并且可以访问数千倍的内存,但是这样做的速度甚至还要慢? 为了模拟当前文档查看器和类似应用程序中的膨胀效果,编写一个程序,使其在功能更强大的计算机上运行时会出现明显的性能问题。 要使每个人都有共同的任务,请使其成为质数生成器。 该程序必须打印从2开始的连续素数,每个素数都换行。它应该永远这样做(或直到内存用完)。像这样: 2 3 5 7 11 13 17 在打印每行之间应该有足够的延迟,以使人类可以察觉到。 随着运行程序的计算机变得更快,此延迟应更长。机器速度越快,程序速度越慢。 我不会指定确切的基准,因为它可能会变得很主观,但是如果两台不同机器的性能之间存在显着差异,那么在两台不同机器上的速度应该存在可察觉的差异。 在创建的所有现有机器上,程序的速度不必单调降低。这将很难指定,甚至难以验证。我相信参赛者的常识是什么可以被认为是机器之间明显不同的性能,足以满足要求。 我也不会指定确切的时间上限或下限,但是应该在合理的范围内,因此请不要在打印两行之间间隔几天或几年。 从Eniac到现代,我都不会要求它运行,但是应该足够通用,例如,不允许它仅在两种特定的CPU类型上运行,并且专门检测一种特定的CPU名称。在其上将运行得更快或更慢。 该代码不应依赖编译器或解释器版本。如果在一台速度越来越慢的计算机上都安装了相同版本的编译器/解释器,或者即使二进制/字节码是在一台计算机上编译然后在两台不同的计算机上运行,​​它也应该可以工作。 请解释程序运行方式的原理。由于将难以再现结果,因此答案的有效性可能取决于该方法的可行性。 虽然我希望它能成为一场次比赛,但遗憾的是,此站点不再是“ Programming Puzzles&Code Golf”,而只是“ Code Golf”,因此最短的代码为准。

5
查找XOR素数
在xnor提出的挑战中,我们被要求实现XOR乘法。在这一挑战中,目标是找到第一个nXOR素数。从以下定义可以看出,XOR素数与常规素数非常相似: 质数的定义:大于1的正数,除非将1与自身相乘,否则不能通过将两个数相乘而形成。 XOR质数的定义:大于1的正数,除非通过1与自身的XOR乘积,否则不能通过两个数的XOR乘积来形成。注意,XOR质数组成oeis序列A014580。 XOR乘法定义为不带进位的二进制长乘法。您可以在xnor的Challenge中找到有关XOR乘法的更多信息。 输入: 一个整数n。 输出: 第一个nXOR素数。 以下是500以下的XOR素数: 2 3 7 11 13 19 25 31 37 41 47 55 59 61 67 73 87 91 97 103 109 115 117 131 137 143 145 157 167 171 185 191 193 203 211 213 229 239 241 247 253 …

2
总理书呆子狙击模式
一年中最长的一天-这会浪费一些额外的时间... 总览 请注意,这不是普及竞赛,也不是图形输出挑战-您只需要输出65,536个零和一的字符串即可。问题底部的堆栈片段将显示为256 x 256黑白图像,并计算您的官方成绩。然后,您可以保存图像并将其与代码一起上传到答案中(因为字符串输出不适合30,000个字符的Stack Exchange答案)。 计分 图像的分数是其各个像素的分数之和。单个像素的得分是与所得分像素颜色相反的每个非正交,素数距离像素的子得分总和。对于每个这样的像素的子分数是其中是主要的距离。1/pp 在此问题的上下文中,这些术语具有以下定义: 非正交:如果像素不在同一行且不在同一列中,则该像素与被计分的像素不正交。 质数距离:如果一个像素与要刻划的像素相距一个质数距离,则它们之间的距离就是恰好是质数的欧几里德距离。尤其是,距离是环形测量的最小距离-左上像素是到sqrt(2)右下像素的距离(所有4条边都环绕)。 相反的颜色:如果像素的值总和为1,则该像素与被计分像素的颜色相反。即,第一个为0,第二个为1,或者第一个为1,第二个为0。 Stack Snippet包含示例代码,该代码显示如何对图像评分,但不包括任何优化或有效方法,仅提供正确代码即可对最终图像进行评分。 如果代码中的任何内容不正确,请在注释中或在chat中让我知道。 JavaScript不一定是回答此特定挑战的最佳语言。请注意,Snippet代码故意不提供有关更快方法的任何线索。只会引入现有答案中已经证明的效率。 可视化 得分像素 为了直观了解评分像素的分布,此处(紫色)是256 x 256图像的像素(128、128)的非正交素距离像素: 随机图像 这是从示例Python 3答案中随机生成的图像。它的分数为138,267.64,可为您提供一些优势。 输入值 该代码不需要输入。 输出量 该代码应输出65,536个零和一的字符串,代表黑白256 x 256图像的像素。这些数字应该是一个连续的字符串,没有分隔符。如果输出到文件,则可能会发现复制和粘贴更加容易,但这取决于您。 您的代码还可以输出您认为有用的其他信息,只要可以将字符串复制并粘贴到堆栈片段中即可。例如,您可能希望定期将最佳字符串输出到文件,并将最佳分数输出到STDOUT,从而允许用户选择何时停止搜索。 堆栈片段 正如指出的SP3000,该片段正在采取10分钟,计算得分,这是一个有点过于缓慢,甚至故意低效的参考实现。我已经对Sp3000的建议改进进行了编辑,该改进是对计分的像素偏移进行预先计算,现在需要几秒钟来计算分数。 显示代码段 canvas = document.getElementById('canvas') ctx = canvas.getContext('2d') scoreArea = document.getElementById('scoreArea') pastedData = document.getElementById('pastedData') timeout = 0 primes …

10
(最多)5个素数的总和
陶仁涛最近证明了哥德巴赫猜想的一种弱形式!让我们利用它! 给定一个奇数整数n > 1,n最多写5个素数。随心所欲输入,随心所欲输出。例如, def g(o): for l in prime_range(o+1): if l == o: return l, for d in prime_range(l+1): for b in prime_range(d+1): if l+d+b == o: return l,d,b for c in prime_range(b+1): for h in prime_range(c+1): if l+d+b+c+h == o: return l,d,b,c,h 是Sage代码,它将整数作为输入,并返回一个整数列表作为输出,其和为n。根据陶定理,这将永远终止! 输入值 一个奇数整数n。您可以决定如何接受输入,但是如果很奇怪,请解释一下。 输出量 相当开放。返回列表。打印一个字符串。给一个,几个或全部。将废话以可预测的方式放在堆栈(GS,Piet等)上或连续(可访问)的内存块(BF等)中。对于这些以后的情况,请解释输出。在所有情况下,退货/打印/拥有的内容应该是n素数分区少于6个部分的简单表示。 计分 …
16 code-golf  math  primes 

11
产生一些粗略的数字
背景 如果所有主要因子均严格超过,则数字n可描述为B-rough 。nB 挑战 给定两个正整数B和k,输出第一个k B-粗数。 例子 设f(B, k)一个函数,该函数返回包含第一个k B-粗数字的集合。 > f(1, 10) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 > f(2, 5) 1, 3, 5, 7, 9 > f(10, 14) 1, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59

16
一个数是连续质数之和的方式数
给定一个大于1的整数,输出将其表示为一个或多个连续素数之和的方式数。 补数的顺序无关紧要。一个和可以包含一个数字(因此任何质数的输出至少为1。) 这是代码高尔夫球。适用标准规则。 有关相关信息和序列,包括序列本身的OEIS A054845,请参阅此OEIS Wiki。 测试用例 2 => 1 3 => 1 4 => 0 5 => 2 6 => 0 7 => 1 8 => 1 10 => 1 36 => 2 41 => 3 42 => 1 43 => 1 44 => 0 311 => 5 1151 …

30
计算前n个质数的总和
令我惊讶的是,这一挑战已经很明显了。(或者我很惊讶我找不到它,任何人都会将其标记为重复。) 任务 给定一个非负整数,计算前素数的总和并输出。nnnnnnn 例子1 对于n=5n=5n = 5,前五个素数为: 2 3 5 7 11 这些数字的总和是2+3+5+7+11=282+3+5+7+11=282 + 3 + 5 + 7 + 11 = 28,因此程序必须输出282828。 范例#2 对于n=0n=0n = 0,“第一个零”素数为空。没有数字的总和-当然是000。 规则 您可以使用内置函数,例如,检查数字是否为质数。 这是代码高尔夫球,因此每种语言中的最低字节数为准!
15 code-golf  primes 

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.