Questions tagged «primes»

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

21
最有效且最短代码的前n个质数列表
规则很简单: 第一n素数(未引发(prime)下面Ñ),应打印到标准输出由分离的换行(素数应的代码内产生) 素数不能通过内置函数或库来生成,即,使用诸如prime = get_nth_prime(n),is_a_prime(number)或factorlist = list_all_factors(number)之类的内置函数或库函数不会很有创意。 评分-假设我们定义得分 = f([代码中的字符数]),O(f(n))是算法的复杂度,其中n是找到的素数。因此,例如,如果您有一个复杂度为O(n ^ 2)的300个字符代码,则分数为300 ^ 2 = 90000,对于具有O(n * ln(n))的300个字符,分数将变为300 * 5.7 = 1711.13(为了简单起见,假设所有日志都是自然日志) 使用任何现有编程语言,得分最低 编辑:由于对O(f(n))中的“ n”是什么感到困惑,所以问题已从查找“前1000000个素数”更改为“前n个素数”,n是找到的素数(查找素数为问题在这里,所以问题的复杂性取决于找到的素数) 注意:为了澄清一些复杂性,如果'n'是找到的素数,而'N'是找到的第n个素数,则复杂度就n为,而N不等价,即O(f(n))! = O(f(N)) as,f(N)!=常数* f(n)和N!=常数* n,因为我们知道第n个素数函数不是线性的,尽管我发现了'n'素数复杂度应易于用“ n”表示。 正如Kibbee所指出的,您可以访问此网站来验证您的解决方案(此处是旧的google文档列表) 请在您的解决方案中包括这些- 您的程序有什么复杂性(如果不琐碎,请包括基本分析) 字符长度 最终计算出的分数 这是我的第一个CodeGolf问题,因此,如果以上规则有误或漏洞,请指出。

30
给定范围内的素数之和
编写最短的代码,以查找和之间的质数之a和b。 输入项 a并且b可以从命令行或标准输入采取(空间分隔) 假设1 <= a <= b <=10 8 输出 只需用换行符打印总和即可。 奖励积分 如果程序接受多个范围(每行打印一个总和),您将获得加分。:)
27 code-golf  primes 

22
它是弱质素吗?
如果最接近的其他素数小于素数,则素数是弱的。如果有平局,则素数并不弱。 例如73是弱素数,因为71是素数,而75是复合数。 任务 编写一些计算机代码,当输入大于2的质数时,将确定它是否为弱质数。这是一个标准的决策问题,因此您应针对两种情况(例如weak和not weak)分别输出两个唯一值。 这是代码高尔夫球,因此适用标签的标准规则。 信息系统 以下是前47个弱素数: 3, 7, 13, 19, 23, 31, 43, 47, 61, 73, 83, 89, 103, 109, 113, 131, 139, 151, 167, 181, 193, 199, 229, 233, 241, 271, 283, 293, 313, 317, 337, 349, 353, 359, 383, 389, 401, 409, 421, 433, 443, 449, …

8
A083569:最小的m不会较早出现,因此m + n为质数
定义一个1索引的序列,如下所示: A083569(1) = 1 A083569(n)其中n大于的整数1是较早出现的最小质数m,m+n即素数。 您的任务是接纳n并返回A083569(n)。 n A083569(n) 1 1 2 3 3 2 4 7 5 6 6 5 7 4 8 9 9 8 10 13 11 12 12 11 13 10 14 15 15 14 16 21 17 20 18 19 19 18 20 17 在这里可以找到更多的测试用例。OEIS的原始序列可以在这里找到。 这是代码高尔夫球。以字节为单位的最短答案将获胜。有标准漏洞。

21
仅包含这些数字的最小n位素数
您将需要生成带有n数字的最小素数,并且它仅包含list中指定的数字k。 例子: 输入: 4 1 2 为此,您必须生成带有4数字的最小素数,并且该素数必须仅包含数字1和2。 输出: 2111 输入: 10 0 4 7 输出: 4000000007 输入: 6 5 5 5 5 5 5 5 5 5 5 1 5 5 5 5 5 5 5 5 5 5 输出: 115151 您可以保证输入将始终采用您指定的格式,并且如果输入无效(例如,输入为一位n,而没有k),则可以执行任何操作。 如果不存在此类输入解决方案,则允许您的程序执行以下任一操作: 打印 banana 抛出错误 永远跑 还要别的吗 由于这是代码高尔夫,请尝试以最短的代码为目标。 输入可以是您指定的任何格式。例如,如果您希望您的输入与以下任何一种一样,那就很好。 …

6
连接素数
挑战: 您将得到一个仅包含数字的字符串。您的任务是输出必须连接形成字符串的最小素数。如果这不可能,则输出0。 测试用例: 输入->输出: 252 -> 3 235 -> 2 92 -> 0 31149 -> 2

17
无限多个素数
自从欧几里得以来,我们知道有无限多个素数。这个论点是矛盾的:如果只有有限个,假设p1个,p2,。。。,pñp1,p2,...,pnp_1,p_2,...,p_n,那么肯定m := p1个⋅ p2⋅ 。。。⋅ pñ+ 1m:=p1⋅p2⋅...⋅pn+1m:=p_1\cdot p_2\cdot...\cdot p_n+1是不是由这些素数整除,所以它的因式分解必须产生新总理,这不是在列表中。因此,仅存在有限素数的假设是错误的。 现在,假设222是唯一的质数。从上面的方法可以得出2 + 1 = 32+1=32+1=3作为新的(可能的)素数。应用该方法再次产生2 ⋅ 3 + 1 = 72⋅3+1=72\cdot 3+1=7,然后2 ⋅ 3 ⋅ 7 + 1 = 432⋅3⋅7+1=432\cdot 3\cdot 7+1=43,那么2 ⋅ 3 ⋅ 7 ⋅ 43 + 1 = 13 ⋅ 1392⋅3⋅7⋅43+1=13⋅1392\cdot 3\cdot 7\cdot 43+1=13\cdot 139,所以无论131313和139139139是新的素数,等等。在我们得到一个复合数的情况下,我们只取最少的新素数。结果为A000945。 挑战 给定一个质数p1个p1p_1和一个整数ñnn计算定义的序列的第ñnn个项pñpnp_n,如下所示: pñ:=分钟(素数(p1个⋅ …

2
神经网络可以识别素数吗?
背景 识别素数似乎不适合(人工)神经网络。但是,通用逼近定理指出,神经网络可以逼近任何连续函数,因此特别应该可以表示一个人想要的任何有限支持的函数。因此,让我们尝试识别前百万个数字中的所有质数。 更准确地说,因为这是一个编程网站,所以我们将其设为2 ^ 20 = 1,048,576。低于此阈值的质数为82,025或大约8%。 挑战 您能找到将神经网络正确分类为素数或不素数的20个整数吗? 出于此挑战的目的,神经网络的大小是表示它所需的权重和偏差的总数。 细节 目标是最小化单个显式神经网络的大小。 您网络的输入将是一个长度为20的矢量,其中包含整数的各个位,分别用0和1或-1和1表示。这些的顺序可以是最高有效位在前或最低有效位在前。 网络的输出应为单个数字,以便在某个截止值以上将输入识别为质数,而在同一截止值以下则将输入视为非质数。例如,正数可能表示素数(负数不是素数),或者大于0.5可能意味着素数(小于0.5则不是素数)。 在所有2 ^ 20 = 1,048,576个可能的输入上,网络必须是100%准确的。如上所述,请注意,此范围内有82,025个素数。(因此,始终输出“非素数”的精度为92%。) 用标准的神经网络术语来说,这可能称为过拟合。换句话说,您的目标是完美拟合素数。可能使用的其他词语是“训练集”和“测试集”相同。 该挑战不考虑“可训练”或“可学习”参数的数量。确实,您的网络可能包含硬编码的权重,下面的示例完全是硬编码的。取而代之的是,所有的重量和偏见是考虑的参数和计数。 训练或生成您的神经网络所需的代码长度与您的分数无关,但是发布相关代码当然值得赞赏。 基准线 作为基准,可以“记住”所有82,025个素数,总重量和偏差为1,804,551。 请注意,下面的代码包含许多内容:工作示例,工作测试代码,使用已知神经网络库的神经网络的有效定义,“硬编码”(或至少不是“训练有素”)神经网络,和分数的有效衡量。 import numpy as np bits = 20 from keras.models import Sequential from keras.layers import Dense from sympy import isprime # Hardcode some weights weights = …

6
主要密闭编号(快速版)
这是序列A054261 第个素数包含数是包含前素数作为子字符串的最低数。例如,数字是最低的数字,其中包含前3个素数作为子字符串,使其成为第3个素数包含数。ññnññn235235235 这是微不足道弄清楚前四个遏制素数是,,和,但随后变得更有趣。由于下一个素数是11,所以下一个素数包含数不是,而是因为它被定义为具有该属性的最小数。222232323235235235235723572357235711235711235711112357112357112357 但是,当您超过11时,真正的挑战就来了。下一个主要收容编号为。请注意,在此数字中,子字符串和 是重叠的。该数字也与数字重叠。1132571132571132571113313 很容易证明此序列在增加,因为下一个数字需要满足该数字之前的所有条件,并且还要有一个子字符串。但是,该序列并不严格增加,如n=10和结果所示n=11。 挑战 您的目标是找到尽可能多的主要收容编号。您的程序应以有序的方式输出它们,从2开始并向上。 规则 允许您对素数进行硬编码。 不允许您对主要的安全壳号(2唯一的例外)或任何使挑战变得微不足道的魔术数字进行硬编码。请友好一点。 您可以使用任何您想要的语言。请包括命令列表,以使环境为执行代码做好准备。 您可以自由使用CPU和GPU,也可以使用多线程。 计分 官方评分将来自我的笔记本电脑(戴尔XPS 9560)。您的目标是在5分钟内生成尽可能多的主要收容编号。 眼镜 2.8GHz英特尔酷睿i7-7700HQ(3.8GHz增强)4核,8线程。 16GB 2400MHz DDR4内存 NVIDIA GTX 1050 Linux Mint 18.3 64位 到目前为止找到的数字,以及最后加上的质数: 1 => 2 ( 2) 2 => 23 ( 3) 3 => 235 ( 5) 4 => 2357 ( 7) 5 …

22
递归字符串替换
任务 编写一个程序或函数,给出给定的三个字符串A, B, C会生成一个输出字符串,其中Bin的每个实例A都已用递归替换C。递归替换表示重复替换,其中在每一步中Bin的所有不重叠实例A(从左到右贪婪地选择)都替换为,C直到B不再包含在中A。 输入输出 您可以对I / O使用任何默认方法。 字符串将仅包含可打印的ASCII字符(并且可以包含任何一个)。 B永远不会是一个空字符串,而A并且C可能是。 字符串应被视为纯文本,例如,您不能将其B视为Regex模式。 输入的某些组合永远不会终止。在这种情况下,您的程序可以执行任何操作。 测试用例 这些格式为: A/B/C\nOutput Hello, world!/world!/PPCG Hello, PPCG Uppercase is up/up/down Uppercase is down ababababa/aba/ccc cccbcccba delete/e/{empty string} dlt {empty string}/no/effect {empty string} llllrrrr/lr/rl rrrrllll +-+-+-+/+-+/+ + ababababa/aba/bada badabbadbada abaaba/aba/ab abb ((())())())/()/{empty string} ) 不会终止的示例: grow/ow/oow loop/lo/lo
25 code-golf  string  substitution  code-golf  math  code-golf  string  set-theory  code-golf  code-golf  compile-time  code-golf  kolmogorov-complexity  binary  code-golf  sequence  cops-and-robbers  code-golf  subsequence  card-games  code-golf  sequence  primes  code-golf  code-golf  number  graphical-output  music  code-golf  ascii-art  code-golf  string  lambda-calculus  code-golf  string  code-generation  code-golf  unicode  code-golf  math  combinatorics  code-golf  balanced-string  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-challenge  fastest-code  chess  code-golf  math  graphical-output  code-golf  string  hello-world  animation  code-golf  number  arithmetic  code-golf  integer  code-golf  code-golf  combinatorics  code-golf  kolmogorov-complexity  graphical-output  code-golf  string  code-golf  code-golf  game  code-golf  math  combinatorics  code-golf  ascii-art  popularity-contest  random  code-golf  arithmetic  number-theory  integer  code-golf  tips  underload  code-golf  math  sequence  primes  code-golf  math  path-finding  code-golf  ascii-art  primes  code-golf  kolmogorov-complexity  alphabet 

16
近似布伦常数
布伦常数是其中的倒数之和的值孪生素数对(1/p与1/(p+2)其中p和p+2都是素数)收敛。大约是1.902160583104。 给定一个正整数N,通过将双素数对中的两个素数均小于的双素数对的倒数相加来近似布伦常数N,并输出近似值。 规则 N 将是您的语言可表示范围内的正整数。 在您的语言的浮点实现限制内,输出必须尽可能精确到真实值,而忽略由于浮点算术错误而引起的任何潜在问题。如果您的语言能够执行任意精度算术,则它必须至少与IEEE 754双精度算术一样精确。 或者,可以以任何一致,明确的格式输出精确的分数。 如果一个主要出现在多个孪生素对(例如5,二者的一部分(3, 5)和(5, 7)),其倒数有助于总和各一次。 测试用例 2 -> 0 6 -> 0.5333333333333333 10 -> 0.8761904761904762 13 -> 0.8761904761904762 100 -> 1.3309903657190867 620 -> 1.4999706034568274 100000 -> 1.67279958482774

17
计算+1个素数
定义的自然数p是一个1素的自然数的Ñ如果p是素数和标准二进制表示(即,无前导零)的p可以通过添加(即,在前面加上,附加或插入)来获得n的标准二进制表示形式的单个1。 例如,17的二进制表示为10001 2。可以通过添加来形成不同的自然数1至10001 2是110001 2或49,101001 2或41,100101 2或37,和100011 2或35。 其中41和37是质数,因此17具有两个+1质数。 任务 编写一个接受严格正整数n作为输入并打印或返回n的不同+1素数的程序或函数。 输入和输出必须是整数或其十进制或一进制字符串表示形式。 适用标准代码高尔夫球规则。 测试用例 Input: 4 Output: 0 Input: 1 Output: 1 Input: 17 Output: 2 Input: 33 Output: 3 Input: 553 Output: 4 Input: 3273 Output: 5 Input: 4145 Output: 6 Input: 4109 Output: 7 Input: 196869 Output: 8

22
伯特兰素数
Bertrand的假设指出,对于每个整数n≥1,至少有一个素数p使得n <p≤2n。为了验证n <4000的该定理,我们不必检查4000个情况:Landau技巧说,检查 2, 3, 5, 7, 13, 23, 43, 83, 163, 317, 631, 1259, 2503, 5003 都是素数 因为这些数字中的每一个小于其前身的两倍,所以每个间隔{y:n <y≤2n}至少包含那些质数之一。 此数字序列为Bertrand素数(OEIS A006992),其定义如下: a(1) = 2 a(n) = largest prime below 2a(n-1) 挑战 执行此序列。你可以写 给定n的函数或程序返回a(n)(索引为0或1), 给定n的函数或程序返回此序列的前n个(或n-1或n + 1)条目, 语言中的无限列表或流或生成器或类似的等效项。

22
偶数可以成为素数吗?
序列 每个人都知道唯一的偶数是2。呜呜 但是,也有一定的连号n,其中,当串联n-1,就成为一个素数。 对于初学者来说,1不在列表中,因为10它不是素数。与2(21)和3(32)类似。但是,4之所以起作用是因为它43是质数,因此它是序列中的第一个数字a(1) = 4。下一个有效的数字(6(65)和8(87)都不起作用)是10,因为它109是素数a(2) = 10。然后我们再跳过一堆,直到22因为2221是素数,所以a(3) = 22。等等。 显然,此序列中的所有项都是偶数,因为n与之连接的任何奇数都n-1将变为偶数(如3变成32),而该数将永远不是素数。 这是OEIS上的序列A054211。 挑战 给定一个n适合此序列某处的输入数字(即,n与n-1质数连接),输出其在此序列中的位置。您可以选择0或1索引,但请在提交时说明。 规则 可以假定输入和输出适合您语言的本机整数类型。 输入和输出可以任何方便的格式给出。 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 如果可能,请提供一个在线测试环境的链接,以便其他人可以尝试您的代码! 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常见的高​​尔夫规则都适用,并且最短的代码(以字节为单位)获胜。 例子 以下示例为1索引。 n = 4 1 n = 100 11 n = 420 51

20
登峰造极
Numberphile最新视频的标题13532385396179,是下面的函数的固定点˚F的正整数: 令n为正整数。以通常的方式写素数分解,例如60 = 2 2 ·3·5,其中素数以递增顺序写,而指数1被忽略。然后将指数降低到该行并省略所有乘法符号,得到数字f(n)。例如,f(60)= f(2 2 ·3·5)= 2235。 (以上定义来自五个$ 1,000问题中的问题5 -John H.Conway) 请注意,f(13532385396179)= f(13·53 2 ·3853·96179)= 13532385396179。 任务 将正整数复合n作为输入,然后输出f(n)。 另一个例子 48 = 2 4 ·3,所以f(48)= 243。 测试用例 这里有更多的测试用例。 4 -> 22 6 -> 23 8 -> 23 48 -> 243 52 -> 2213 60 -> 2235 999 -> …

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.