Questions tagged «factoring»

这个标签描述了与分解数和多项式有关的挑战。与Factor神秘编程语言无关。

15
看天上!这是一个超级骗子阵列!
在Code Review中受到我们竞争对手朋友的这个问题的启发。 定义 甲超级阵列是一个阵列,其中阵列中的每个新的元件比以前的所有元素的总和大。{2, 3, 6, 13}是一个超级数组,因为 3 > 2 6 > 3 + 2 (5) 13 > 6 + 3 + 2 (11) {2, 3, 5, 11}是不是一个超级阵列,因为 3 > 2 5 == 3 + 2 11 > 5 + 3 + 2 甲骗子阵列是一个阵列,其中阵列中的每个新的元件比以前所有的元素的乘积大。{2, 3, 7, 43, 1856}是一个超级数组,但它也是一个双精度数组,因为 3 > …

14
生成n进制数
次要数字是一个正整数,其主要因子(无多重性)均小于或等于其平方根。4是次级数,因为它的唯一质数是2,它等于其平方根。但是,15它不是次要数字,因为它有5一个素数,它大于平方根(~ 3.9)。因为所有素数都以素数为素,所以素数都不是次要数。前几个辅助数字如下: 1, 4, 8, 9, 12, 16, 18, 24, 25, 27, 30, 32, 36, 40, 45, 48, 49, 50, 54, 56 除所有素数必须小于或等于其立方根之外,三次数的定义与此类似。前几个三级数如下: 1, 8, 16, 27, 32, 36, 48, 54, 64, 72, 81, 96, 108, 125, 128, 135, 144, 150, 160, 162 通常,一个n元数是一个其素因子都小于或等于其n次方的数。因此,一个正整数XXx是n进制数当且仅当它的每一个素数因子的ppp满足pñ≤ Xpñ≤Xp^n ≤ x。因此,初等数均为正整数(所有素数均小于或等于其自身),四进制数的所有素数均小于或等于其第四根,依此类推。 挑战 给定整数k和n作为输入,输出k第n进制数。k可以是零索引或一索引(您的选择),并且n始终为正。 例子 …

11
编码一个整数
给定正整数n > 2。我们将其转换为数组,如下所示: 如果等于则2返回一个空数组 否则,创建所有n升序排列的所有素数的数组,然后将每个元素替换为其素数序列中的索引,最后将每个元素转换为数组 例如,让我们将数字转换46为数组。首先,将其转换为主要因子数组: [2, 23] 号码23是9个质数,所以更换2空数组并23用[9]。数组现在变为: [[], [9]] 的主要因子9是3和3,因此: [[], [3, 3]] 对两个都做相同的事情3: [[], [[2], [2]]] 最后: [[], [[[]], [[]]]] 现在,要对其进行编码,我们只需用替换每个开括号,1并将每个闭括号替换为0,然后删除所有结尾的零,并1从结尾删除一个。这是我们的二进制数。使用上面的示例: [ ] [ [ [ ] ] [ [ ] ] ] | | | | | | | | | | | | | | …

10
查找Rationals的点积
我在朋友家吃晚饭,他们提出了“素数向量空间”的想法。在此空间中,将正整数表示为向量,以使向量中的第n个元素是第n个素数除以该数目的次数。(请注意,这意味着我们的向量具有无限数量的项。)例如20为 2 0 1 0 0 0 ... 因为它的质因子分解是2 * 2 * 5。 由于素因数分解是唯一的,所以每个数字都对应一个向量。 我们可以通过成对添加向量来添加向量。这与将它们关联的数字相乘相同。我们还可以进行标量乘法,这类似于将相关数提高为幂。 问题在于该空间实际上不是矢量空间,因为没有逆。如果继续进行加和逆运算并关闭向量空间,我们现在可以将每个正有理数表示为向量。如果我们保留向量加法表示乘法的事实。那么自然数的倒数就是它的倒数。 例如,数字20具有向量 2 0 1 0 0 0 ... 因此,1/20是其倒数 -2 0 -1 0 0 0 ... 如果我们想找到与14/15之类的分数相关的向量,我们将找到14 1 0 0 1 0 0 ... 和1/15 0 -1 -1 0 0 0 ... 并通过执行矢量加法将它们相乘 1 …

30
我是不是对你没够好?
背景: 当前的“ 完美数字”挑战相当有缺陷和复杂,因为它要求您以涉及数字因子的复杂格式输出。这只是挑战的决策问题转贴。 挑战 通过任何标准输入格式给定正整数,请区分是否为完美整数。 理想数是一个等于其所有适当除数之和的数字(其正除数小于其自身)。例如,是一个正数,因为它的除数是,总和为,而不是一个正数,因为它的除数(1,2,3,4,6)总和为16,不是12。6661,2,31,2,31,2,36661212121,2,3,4,61,2,3,4,61,2,3,4,6161616121212 测试用例: Imperfect: 1,12,13,18,20,1000,33550335 Perfect: 6,28,496,8128,33550336,8589869056 规则 如果存在内存或时间限制,您的程序不必完成较大的测试用例,但从理论上讲,如果有更多的内存/时间,它应该可以。 通过任何允许的输出格式,输出可以是两个不同且一致的值。如果尚不清楚什么代表完美/不完美,请确保在您的答案中指定。

30
计算主要因素
不久前,我们遇到了一个主要的因式分解挑战,但是这个挑战已经存在了将近六年,并且几乎不能满足我们当前的要求,因此我认为现在是时候提出一个新的挑战了。 挑战 编写一个程序或函数,将大于1的整数作为输入,并输出或返回其主要因子的列表。 规则 输入和输出可以通过任何标准方法和任何标准格式给出。 输出中必须包含重复因素。 输出可以是任何顺序。 输入将不小于2或大于2 31-1。 允许内置,但鼓励包括非内置解决方案。 测试用例 2 -> 2 3 -> 3 4 -> 2, 2 6 -> 2, 3 8 -> 2, 2, 2 12 -> 2, 2, 3 255 -> 3, 5, 17 256 -> 2, 2, 2, 2, 2, 2, 2, 2 …

18
主要因素之和
2013年是主要因素3*11*61。2014年是主要因素2*19*53。关于这些因式分解的一个有趣特性是,在2013和2014的因式分解中存在不同的素数,它们的总和为相同的数量:11+61=19+53=72。 编写一个程序或函数,该程序或函数的输入为两个大于1的正整数,如果存在一个选定的素数之和等于第二个选定的素数之和,则返回真值。否则为假值。 澄清说明 可以使用两个以上的主要因子。总数中并非所有的素数因子都需要使用。两个数中使用的素数的数量不必相等。 即使在数的因式分解中将质数提高到大于1的幂,它也只能在该数的质数之和中使用一次。 1不是素数。 两个输入数字均小于2^32-1。 测试用例 5,6 5=5 6=2*3 5=2+3 ==>True 2013,2014 2013=3*11*61 2014=2*19*53 11+61=19+53 ==>True 8,15 8=2^3 15=3*5 No possible sum ==>False 21,25 21=3*7 25=5^2 No possible sum (can't do 3+7=5+5 because of exponent) ==>False 这是代码高尔夫。适用标准规则。以字节为单位的最短代码获胜。

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个⋅ …

15
几何挑战
每个人都喜欢几何。那么,为什么我们不尝试编写高尔夫球代码呢?这项挑战涉及输入字母和数字并根据其形状。 输入 输入将采用的形式(shapeIdentifier)(size)(inverter)。 但是shapeIdentifier,大小和逆变器是什么? 形状标识符是您将使用*s 制作的形状类型的标识符。以下是形状标识符: s -正方形 t - 三角形 大小将介于之间1-20,它是图形的大小。 逆变器确定形状是否上下颠倒,用a +或a 表示-。请注意: s3-==(等于),s3+因为正方形是对称的。但是,t5-!=(不相等)t5+。 在输出中可以使用尾随空白,但不能使用前置空白。 输出实例 Input: s3+ Output: *** *** *** Input: t5+ Output: * *** ***** Input: t3- Output: *** * 特别说明 三角形输入将始终为奇数,因此三角形*的顶部始终以1结尾。 三角形的大小(如果是)是底部的大小,如果是 +,则是顶部的大小-。
23 code-golf  string  ascii-art  geometry  code-golf  ascii-art  subsequence  fewest-operations  test-battery  code-golf  array-manipulation  bitwise  code-golf  interactive  code-golf  music  code-golf  string  kolmogorov-complexity  code-golf  string  decision-problem  simulation  code-golf  string  classification  code-golf  sequence  base-conversion  palindrome  code-golf  kolmogorov-complexity  code-golf  date  astronomy  code-golf  sequence  base-conversion  code-golf  geometry  combinatorics  code-golf  string  code-golf  math  array-manipulation  code-challenge  math  code-golf  card-games  code-challenge  array-manipulation  sorting  code-golf  code-golf  math  abstract-algebra  polynomials  code-golf  palindrome  factoring 

23
找到主要因素
在此任务中,您必须编写一个程序,该程序可以计算数字的素数。输入为自然数1 <n <2 ^ 32。输出是采用以下格式的数字素数的列表。如果指数为1,则必须省略。仅输出质数。(假设输入为131784): 131784 = 2 ^ 3 * 3 * 17 ^ 2 * 19 不需要使用相同数量的空格;可以在适当的地方插入空格。您的程序应在不到10分钟的时间内完成输入。字符数最短的程序获胜。

23
ASCII艺术八边形
给定输入整数n > 1,输出边长由n字符组成的ASCII八角形。请参阅以下示例: n=2 ## # # # # ## n=3 ### # # # # # # # # # # ### n=4 #### # # # # # # # # # # # # # # # # #### n=5 ##### # # # # # # …
22 code-golf  ascii-art  code-golf  geometry  code-golf  balanced-string  code-golf  cops-and-robbers  code-challenge  cops-and-robbers  code-golf  code-golf  random  cryptography  code-golf  array-manipulation  number  code-challenge  integer  code-golf  math  integer  code-golf  math  math  parsing  image-processing  test-battery  math  number  combinatorics  fastest-code  code-golf  code-golf  math  number-theory  rational-numbers  polynomials  code-golf  math  geometry  code-golf  code-golf  number-theory  primes  factoring  code-golf  restricted-source  code-golf  string  decision-problem  counting  code-golf  math  sequence  fibonacci  code-golf  array-manipulation  counting  code-golf  array-manipulation  number-theory  code-golf  array-manipulation  code-golf  random  code-golf  string  hexadecimal  code-golf  string  code-challenge  sorting  code-golf  number  floating-point  code-golf  sorting  code-golf  decision-problem  fibonacci  code-golf  number  combinatorics  code-golf  string  code-golf  math  code-golf  electrical-engineering  code-golf  javascript  code-golf  base-conversion  code-golf  array-manipulation  matrix  binary-matrix  code-golf  kolmogorov-complexity  python  perl  ruby  code-golf  number  code-golf  optimization  integer-partitions  code-golf  string  code-golf  ascii-art 

28
最大素数指数
给定一个整数n >= 2,输出其素数分解中的最大指数。这是OEIS序列A051903。 例 让n = 144。其主要分解为2^4 * 3^2。最大指数是4。 测试用例 2 -> 1 3 -> 1 4 -> 2 5 -> 1 6 -> 1 7 -> 1 8 -> 3 9 -> 2 10 -> 1 11 -> 1 12 -> 2 144 -> 4 200 -> 3 500 …

3
分解一个64位整数
编写一个GOLF汇编程序,该程序从stdin读取一个整数(后跟换行符),并输出由换行符分隔的素数,然后在stdout上输出尾随换行符。 主要因素不必按特定顺序排列。1不是主要因素。 您的GOLF二进制文件(组装后)必须适合8192字节。 通过运行10次,您的程序将获得评分,每次输入以下内容之一: 8831269065180497 2843901546547359024 6111061272747645669 11554045868611683619 6764921230558061729 16870180535862877896 3778974635503891117 204667546124958269 16927447722109721827 9929766466606501253 这些数字按照难度粗略排序。第一个应该很容易通过试算法解决。 对这组数字进行优化违反了问题的实质,我可以随时更改这组数字。您的程序必须适用于任何正的64位输入数字,而不仅仅是这些。 您的分数是用于计算上述数字的CPU周期的总和。 因为GOLF是非常新的,所以我将在此处包括一些指针。你应该阅读的 GOLF所有的指令和周期成本规格。在Github仓库示例程序中可以找到。请特别看一下析因示例程序,该程序演示了输入/输出。 通过运行将程序编译为二进制文件python3 assemble.py your_source.golf。然后使用运行您的程序python3 golf.py your_source.bin,这也应该打印周期计数。-d使用--help标志查看程序出口处寄存器内容的值-用于查看所有标志。

5
我的号码是唯一的吗
在这一挑战中,我们学习了一种使用因子树对每个正整数进行编码的方法。 下面是它的工作原理: 空字符串的值为1。 (S)其中S是具有值的任何表达式小号计算结果为š个素数。 AB其中A和B是与值arbirary表达式甲和乙分别具有值A * B。 例如,如果我们想代表7,我们会做 7 -> (4) -> (2*2) -> ((1)(1)) -> (()()) 事实证明,我们可以使用这种方法表示每个整数。实际上,我们可以用多种方式表示一些数字。因为乘法是可交换的10既是 ((()))() 和 ()((())) 同时,某些数字只能以一种方式表示。以8为例。8只能表示为 ()()() 而且由于我们所有的原子都是相同的,所以我们不能使用可交换性来重组它们。 所以现在的问题是“哪个数字只能用一种方式表示?”。第一个观察是我刚刚开始回到那里的观察。似乎完美的力量具有一些特殊的性质。在进一步研究中,我们可以找到36,即6 2是一个完美的幂,但是具有多种表示形式。 (())()(())() (())()()(()) ()(())()(()) ()(())(())() ()()(())(()) 这是有道理的,因为6已经可以重新排列,因此我们从6中得出的任何数字也必须可以重新排列。 现在我们有了一条规则: 如果数字是具有唯一表示形式的完美幂次,则该数字具有唯一表示形式。 该规则可以帮助我们减少确定一个复合数字是否唯一来确定质数是否唯一。现在我们有了该规则,我们想找出是什么使质数唯一。这实际上是不言而喻的。如果我们采用一个唯一的数字并将其括在括号中,则结果必须是唯一的,并且如果n具有多个表示形式,则结果相反;第n个素数必须具有多个表示形式。这产生了第二条规则: 当且仅当n是唯一的时,第n个素数才是唯一的。 这两个规则都是递归的,因此我们将需要一个基本案例。最小的唯一数字是多少?人们可能会说2,因为它的just (),但1(空字符串)更小并且是唯一的。 1是唯一的。 使用这三个规则,我们可以确定一个数字是否具有唯一的因子树。 任务 您可能已经看到了它的来临,但是您的任务是取一个正整数,并确定它是否唯一。您应该编写执行此计算的程序或函数。您应该输出两个可能的值之一,这些值由您决定,但是一个值应表示“是”,当输入是唯一的时输出,而另一个则表示“否”。 您的答案应以字节计分,较少的字节更好。 测试用例 以下是前几个唯一编号: 1 2 3 4 5 …

21
确定丰度
超丰数是一个整数n,它为除数和函数 σ的比率设置了一个新的上限。换句话说,当且仅当对于小于n的所有正整数x而言,n才是多余的: σ(n)n>σ(x)xσ(n)n>σ(x)x\frac{\sigma(n)}n>\frac{\sigma(x)}x 对于一些值: n σ(n) σ(n)/n superabundant 1 1 1.0000 yes 2 3 1.5000 yes 3 4 1.3333 no 4 7 1.7500 yes 5 6 1.2000 no 6 12 2.0000 yes 7 8 1.1429 no 8 15 1.8750 no 9 13 1.4444 no 这些的较长列表(用于测试用例)可以在OEIS A004394中找到。 一个强烈推荐的否定测试用例(如果您的口译员可以处理的话)是360360,因为它与最后一个多余的数字联系在一起。 挑战 您的程序应采用单个正整数,并输出表示该整数是否过多的真实或错误值。 因为这是代码高尔夫球,所以最短的答案以字节为单位。

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.