Questions tagged «number-theory»

数论涉及数的性质和关系,主要是正整数。

6
将数字转换为“不太地方价值的系统”
让我们创建一个数字系统,其中数字长度m的第n位值(从右到左)中的最大数字始终等于m-n +1。例如,在此系统中可表示的最大5位数字是写在12345。除了在特定位置可用的位数受限制外,其他所有增量都是标准的。即,当一个数字超过其数字限制时,我们在下一个数字上加一个。 这是此系统中计数的表示方式: 1; 10; 11; 12; 100; 101; 102; 103; 110; 111; 112; 113; 120; 121; 122; 123; 1000; 1001 ... 您的任务是编写一个函数,该函数采用标准的以10为底的数字,并将其转换为我的编号系统。 较短的代码是可取的。波恩机会! **如果需要9(必须)之后的数字,则可以选择使用字母,也可以返回2位数字作为列表的元素。 测试用例 10 -> 111 20 -> 1003 30 -> 1023 50 -> 1123 100 -> 10035 23116 -> 1234567 21977356 -> 123456789A 根据您的实现方式,最后一种情况运行起来可能会非常慢。如果它花费的时间太长或使用了太多的内存,则无需运行它。但是请注意,有一些方法可以使其快速运行并且使用很少的内存。

2
解释重复!
这项挑战是有关重复的两个挑战系列中的第一个。第二个即将到来。 在一种叫做重复的语言(我刚刚写的东西)中,包含一个无限的字符串12345678901234567890...,带有1234567890永远重复。 以下语法可用于输出数字: +-*/:这会将运算符插入重复数字的字符串中。 例子: +-> 1+2= 3(在和之间+插入一个)+12 +*-> 1+2*3= 1+6= 7(与上面相同,但现在使用两个运算符) /-> 1/2= 0(重复使用整数除法) //-> 1/2/3= 0/3= 0(重复使用带有多个减法和除法的“左关联”) 插入每个运算符时,除非有,否则它的左边有一位数字c(请参阅下文)。 c:与字符串中的下一位数字连接。 例子: c+-> 12+3= 15(c“继续” 1并将其与下一位数字串联起来2,形成12) +c-> 1+23=24 ccc -> 1234 ():用于处理数字的括号。 例子: (c+)*-> (12+3)*4= 15*4= 60(重复使用操作顺序) (c+)/c-> (12+3)/45= 15/45=0 (cc+c)/-> (123+45)/6= 168/6=28 s:跳过数字(从无限字符串中删除数字)。 s+-> 2+3= 5(s跳过1) csc- > 124(第一cconcats …

3
所有阿姆斯壮数字
阿姆斯壮数字(AKA Plus完美数字或自恋数字)是一个数字,等于其数字的n-次幂的和,其中n是数字的位数。 例如,153具有3数字,和153 = 1^3 + 5^3 + 3^3,153阿姆斯壮数字也是如此。 例如,8208具有4数字,和8208 = 8^4 + 2^4 + 0^4 + 8^4,8208阿姆斯壮数字也是如此。 在2013年11月14日,我们测试了数字是否为阿姆斯特朗数字。 现在,我们要列出所有阿姆斯特朗编号。确切有88阿姆斯壮数字: 1 2 3 4 5 6 7 8 9 153 370 371 407 1634 8208 9474 54748 92727 93084 548834 1741725 4210818 9800817 9926315 24678050 24678051 88593477 146511208 472335975 534494836 …

6
最长算术子序列
给定一个非空的有限整数序列,返回最大长度的算术子序列。 如果有多个相同的最大长度,则可以返回它们中的任何一个。 定义: 一个算术序列是这样的序列a(1),a(2),a(3),a(4),...,例如,有一个恒定的c,使得a(m+1)-a(m) = c对于所有m。换句话说:两个后续项之间的差是恒定的。 给定一个序列,b(1),b(2),b(3),b(4),...一个子序列就是一个序列b(s(1)),b(s(2)),b(s(3)),b(s(4)),...,其中1 <= s(1),s(m) < s(m+1)对于所有m。换句话说:采用原始顺序并删除所需的任意多个条目。 例子 Input Output [4,1,2,3,6,5] [1,3,5] or [1,2,3] [5,4,2,-1,-2,-4,-4] [5,2,-1,-4] [1,2,1,3,1,4,1,5,1] [1,1,1,1,1] or [1,2,3,4,5] [1] [1] 一些较长的测试用例: Length: 25 Input: [-9,0,5,15,-1,4,17,-3,20,13,15,9,0,-6,11,17,17,9,26,11,5,11,3,16,25] Output: [15,13,11,9] or [17,13,9,5] Length: 50 Input: [35,7,37,6,6,33,17,33,38,30,38,12,37,49,44,5,19,19,35,30,40,19,11,5,39,11,20,28,12,33,25,8,40,6,15,12,27,5,21,6,6,40,15,31,49,22,35,38,22,33] Output: [6,6,6,6,6] or [39,33,27,21,15] Length: 100 Input: [6,69,5,8,53,10,82,82,73,15,66,52,98,65,81,46,44,83,9,14,18,40,84,81,7,40,53,42,66,63,30,44,2,99,17,11,38,20,49,34,96,93,6,74,27,43,55,95,42,99,31,71,67,54,70,67,18,13,100,18,4,57,89,67,20,37,47,99,16,86,65,38,20,43,49,13,59,23,39,59,26,30,62,27,83,99,74,35,59,11,91,88,82,27,60,3,43,32,17,18] Output: [6,18,30,42,54] or …

8
画一个phi三角形
澄清:基本上,你需要这个 欧拉的totient函数的名称为phi。 让我们尝试计算phi(8) 首先,向后列出所有数字8,且不包括0或以下 8 7 6 5 4 3 2 1 现在找出哪些数字与8不共享因数(1不计数),并#在其位置放置a 。 8 # 6 # 4 # 2 # 删除数字。 # # # # - 现在执行此操作,但是将输出串成三角形 9 88 777 6666 55555 444444 3333333 22222222 111111111 --------- 123456789 # 排除非要素共享数 9 8# 7## 6#66 5#### 4#4#4# 3##3##3 2#2#2#2# …

23
找到正因数!
定义 如果数字大于零,则为正数。 如果数字(A)可以除以无余数,则它是另一个数字(B)的除数。AB 例如,2是6因的除数,2可以除以6余数。 目标 您的任务是编写一个带正数的程序/函数,然后找到所有除数。 限制 您不得使用任何与prime 或 factorization相关的内置函数。 算法的复杂度不得超过O(sqrt(n))。 自由 输出列表可能包含重复项。 输出列表不需要排序。 计分 这是代码高尔夫球。以字节为单位的最短解决方案获胜。 测试用例 input output 1 1 2 1,2 6 1,2,3,6 9 1,3,9

1
帮助Jason格式化他的JSON
杰森(Jason)有一个很大的JSON,但它不可读,因此需要美化它。 格式化规格 JSON有4种不同的类型: 数字;只是0-9 弦; 用双引号引起来的"字符串\ 数组;以分隔[],项目以分隔,,项目可以是以下任何类型 对象;以分隔{},格式是key: valuekey是字符串,value是这些类型中的任何一种 间距 数组之间的逗号之间应仅留一个空格 对象应该在键和值之间只有一个空格, : 缩进 每个嵌套级别比上一个缩进2个级别 每个对象键/值对始终在自己的行上。对象缩进 如果数组包含另一个数组或对象,则该数组将缩进多行。否则,数组将保持一行 规则 内置插件,其轻视这个任务都不会允许的。 一如既往,不允许出现标准漏洞 例子 [1,2,3] [1, 2, 3] {"a":1,"b":4} { "a": 1, "b": 4 } "foo" "foo" 56 56 {"a":[{"b":1,"c":"foo"},{"d":[2,3,4,1], "a":["abc","def",{"d":{"f":[3,4]}}]}]} { "a": [ { "b": 1, "c": "foo" }, { "d": [2, …
11 code-golf  string  json  code-golf  number  code-golf  image-processing  code-golf  string  code-golf  number  sequence  arithmetic  number-theory  code-golf  string  code-golf  string  counting  code-golf  ascii-art  code-golf  math  code-golf  tips  code-golf  string  code-golf  grid  graph-theory  code-golf  parsing  interpreter  brainfuck  code-golf  math  arithmetic  number-theory  programming-puzzle  c#  code-golf  dominoes  code-golf  tips  code-golf  string  grid  crossword  code-golf  string  code-golf  kolmogorov-complexity  code-golf  number  sequence  code-golf  string  math  number  number-theory  primes  fastest-code  code-golf  number  code-golf  string  code-golf  ascii-art  number  kolmogorov-complexity  code-golf  string  grid 

1
计算数字,除数版
在数学上受到这个问题的启发。 让一个数的因式分解,Ñ,被表示为P(N)= 2 一个 ×3 b ×5 Ç X ...。 (使用X作为乘法符号。) 接着的约数的数目Ñ可以表示为d(N)=(A + 1)×(B + 1)×(C + 1)...。 因此,我们可以很容易地说2n的除数为D(2n)=(a + 2)x(b + 1)x(c + 1)...,3n 的除数为D(3n )=(a + 1)x(b + 2)x(c + 1)..., 依此类推。 挑战: 给定某些除数输入,编写一个使用这些属性来计算n的程序或函数。 输入: 一组整数,我们将其称为w,x,y,z,并具有以下所有定义: 所有输入都大于1- w, x, y, z > 1 x和z不同-x<>z x和z为质数- P(x)=x,D(x)=2和P(z)=z,D(z)=2 w是xn的除数-D(xn)=w y是zn的除数-D(zn)=y …

8
团结的原始根源
设z一个复数。如果对于某个正整数和任何正整数,z是第n个本原的根。n k < n 挑战 编写一个完整的程序或函数,给定一个正整数n作为输入,该程序或函数将输出所有n个原始单位根。您可以将它们输出为极性形式(e^θi或e^iθ,参数应为至少两个小数位的小数)或矩形形式(a + bi或类似形式,实部和虚部也应为小数),并且它们可能会在您的语言列表中输出/ array格式或字符串,数字用空格或换行符分隔。不允许使用用于计算第n个统一根或第n个基本统一根的内置函数。 这是代码高尔夫球,因此以字节为单位的最短代码获胜。 样本输入和输出 6 -> e^1.05i, e^-1.05i # polar form 3 -> e^2.094395i, e^-2.094395i # any number of decimal places is OK as long as there are more than 2 8 -> 0.707 + 0.707i, 0.707 - 0.707i, -0.707 + 0.707i, -0.707 …

5
贝祖特的身份
Bézout身份简介 两个整数A,B的GCD是最大的正整数,该整数将两个整数除而无余数。现在由于欧几里得的性质,每个整数N可以除以另一个整数M,如下所示: 存在u,v对,我们可以这样写: 由于这些对的数量是无限的,因此我们想找到特殊的对。实际上恰好有两个这样的对满足(A,B不为零) 例如 挑战 这项挑战的目标是找到满足上述约束且u必须为正的一对(有序)系数(u,v)。这样会将输出范围缩小到唯一对。 输入值 我们可以假设输入为正,而且A总是大于B(A> B)。 输出量 我们程序/函数的输出必须是挑战中指定的(有序)对。 规则 不得使用内置的扩展欧几里德算法(例如,在Mathematica中允许使用,GCD但不允许ExtendedGCD- 否则将失败5,3)。 答案可能是完整的程序(通过STDIN或类似输入接受并通过STDOUT输出)或功能(返回对)。 除(u,v)对之外,不得有任何输出,不允许尾随换行符或空格。(括号或逗号都可以) 这是代码高尔夫,禁止所有标准漏洞,并且以字节数最少的程序为准。 例子 (A, B) -> (u, v) (42, 12) -> (1, -3) (4096, 84) -> (4, -195) (5, 3) -> (2, -3) (1155, 405) -> (20, -57) (37377, 5204) -> (4365, -31351) (7792, …

3
启动一个原始世界
受编程原始世界的启发。也与此挑战息息相关。 让我们将原始质数定义为一个本身就是质数的数字,但是如果您删除N个以10为基数的连续子串,则将不再是质数0 < N < digits in number。 例如,409是原始质数,因为409本身是质数,但是除去1位数字的子串后得到的所有数字都不是质数: 40 49 09 = 9 并且由于删除长度为2的子字符串而产生的所有数字都不是质数: 4 9 另一方面,质数439不是原始的。删除不同的子字符串将导致: 43 49 39 4 9 虽然49、39、4和9都不是素数,但43 是素数;因此,439不是原始的。 2、3、5和7非常原始,因为它们不能删除任何子字符串。 挑战 您的挑战是创建一个程序或函数,该程序或函数需要一个正整数N并输出第N个原始质数。该代码应在任何现代PC上在不到1分钟的时间内完成,最多输入50次。 以字节为单位的最短代码获胜。 作为参考,以下是前20个原始质数: N Pristine prime 1 2 2 3 3 5 4 7 5 11 6 19 7 41 8 61 9 …

1
最小的覆盖面积,用于二次方性方差测试
挑战 找到可以通过查表测试二次残基集的最小基数(例如,模),以确定给定的非负整数n是否为理想平方。所有底数都必须小于或等于n的最大值的平方根。 给定类别n的基数最小的答案将赢得挑战。(这意味着可能有一个以上的获胜者。)n的类别为: Category Maximum allowed n Maximum allowed modulus/base ------------- -------------------- ---------------------------- 8-bit values 255 15 16-bit values 65535 255 32-bit values 4294967295 65535 64-bit values 18446744073709551615 4294967295 如果两个基数相等的平局出现平局,则平局将转到具有更大能力以较早地检测非平方的组。 如果没有找到完整的封面(对于32位和64位类别来说完全有可能),则获胜者将是一组从统计学上或经证明可排除最高百分比的非平方数的基数(无误)将正方形报告为非正方形)。有关不完整保险单的讨论,请参见下文。 背景 在许多数论应用中,会出现一个问题,即某个数n是否为一个完美的平方(0、1、4、9、16、25、36、49、64、81、100等)。测试的一个方法是否Ñ是正方形是测试是否地板(√N)2 = N,即是否圆形向下的平方根Ñ,平方时,还给Ñ。例如,floor(√123)²=11²= 121,它不是123,所以123不是正方形。但是楼板(√121)²=11²= 121,所以121是正方形。此方法适用于少量数字,特别是在可用硬件平方根运算的情况下。但是对于大量(数百或数千位)的数据,它可能会非常慢。 测试正方形性的另一种方法是使用二次残差表排除非正方形。例如,以10为底的所有平方必须有一个最终的(一位)数字,该数字为0、1、4、5、6或9。这些值构成以10为底的二次残差集。 -10号以0、1、4、5、6或9结尾,您知道它可能是方形的,因此需要进一步检查。但是,如果以10为底的数字以2、3、7或8结尾,则可以确定它不是平方。 因此,让我们看看另一个基础。以8为底​​的所有平方必须以0、1或4结尾,方便地,这只是8种可能性中的3种,这意味着一个随机数可能为平方的概率为37.5%,或者一个绝对数不是平方的概率为62.5%。这些比基数10给出的几率要好得多。(并且请注意,以8为底的模数运算只是一个逻辑与运算,而不是以10为底的模数除以10并除以余数。) 有更好的基础吗?好吧,是的,实际上。基础120有18种可能性(0、1、4、9、16、24、25、36、40、49、60、64、76、81、84、96、100和105),仅占15%可能是正方形的机会。而基数240更好,只有24种可能性,仅代表10%的可能是正方形。 但是,没有一个单独的基数可以单独确定平方度(除非它大于要测试的最大数,这是不切实际的)。一个单一的基地只能排除方形性。它不能最终验证方形性。只有精心选择的一组基础一起使用,才能最终验证整数范围内的直角性。 因此,问题就变成了:哪一组基形成最小的覆盖范围,这些覆盖范围一起可以确定性地推算出正方形度或非正方形度? 正确但非最小保障的示例 以盖子16为基础的盖子{3、4、5、7、8、11、13、16、17、19、23、25、29、31、37}足以确定底角的正方形或非正方形。所有 16位值0到65535。但这不是最小覆盖率,因为至少存在一个15基覆盖率,而且很容易发现。实际上,很可能存在较小的掩护-可能只有6或7个碱基。 但为说明起见,让我们看一下使用此16基覆盖集测试n的样本值。这是上述碱基集的二次残基集: Base m Quadratic …

6
给定r和n,找到x的前n个数字,其中x的第一个数字移动到最后一个给出x / r = y
目的 给定输入r并n找到第一个n自然数,x这样,如果我们将第一个数字旋转到最后一位,就可以得到x/r。 您可以假设2 <= r <= 9和1 <= n <= 65535。 您可以编写一个程序,该程序从stdin或命令行参数获取输入。或者您可以编写一个以r和n作为参数的函数。但是,输出应为stdout。输出应为每个值的一行x,格式为x/r=y,按递增顺序x。 您的解决方案必须能够在一台合理的台式计算机上在一分钟内处理所有有效案件。 测试用例 输入:4 5 输出: 102564/4=25641 205128/4=51282 307692/4=76923 410256/4=102564 512820/4=128205 输入:5 1 输出:714285/5=142857 这是代码高尔夫球,因此最少字节获胜。从现在开始(2014-09-19)4周将接受获奖答案。 这个问题的功劳归我的同事,他允许我在这里发布这个问题:)

2
X大于3,且X和Y之间至少相差2
我试图打败一些C ++。是否可以使这种情况更短? X > 3 & X - Y > 1 (当然,除了删除空白。) 所以,X至少4,但X >= Y + 2。 X和Y是[0,5]间隔中的整数。 我试图找到一些按位公式,但失败了。
11 code-golf  number  tips  c++  code-golf  popularity-contest  obfuscation  code-golf  c  code-golf  board-game  hexagonal-grid  code-golf  game  grid  code-golf  number  permutations  popularity-contest  math  graphical-output  number-theory  king-of-the-hill  code-challenge  compression  code-challenge  fastest-code  code-golf  math  ascii-art  animation  code-golf  popularity-contest  generation  counting  fastest-code  fastest-code  popularity-contest  image-processing  king-of-the-hill  code-golf  conversion  binary-tree  code-golf  math  number  rational-numbers  division  code-golf  restricted-source  hashing  atomic-code-golf  logic-gates  code-golf  function  code-challenge  puzzle-solver  ai-player  test-battery  popularity-contest  music  compression  code-golf  number  stack  atomic-code-golf  logic-gates  ascii-art  popularity-contest  code-golf  date  grid  code-challenge  game  code-golf  parsing  code-golf  math  geometry  sequence  popularity-contest  code-trolling  code-golf  string  restricted-source  code-golf  quine  king-of-the-hill  code-golf  math  code-golf  simulation  code-golf  ascii-art  code-challenge  sorting  optimization 

10
一些孤独的素数
我知道,我知道,还有另一个挑战。 有关 一个孤独的(或分离的)主要是一个素数p,使得p-2,p+2,p-4,p+4... p-2k,p+2k对于一些k都是复合材料。我们称这样的素数为k孤立的素数。 例如,第5次隔离的素数是211,因为它们201, 203, 205, 207, 209, 213, 215, 217, 219, 221都是复合的。(p-2*5=201,p-2*4=203等) 挑战 给定两个输入整数n > 3和k > 0,输出最小的kth次隔离质数严格大于n。 例如,对于k = 5及n范围内的任何值4 ... 210,输出应为211,因为它是最小的5次隔离质数,严格大于input n。 例子 n=55 k=1 67 n=500 k=1 503 n=2100 k=3 2153 n=2153 k=3 2161 n=14000 k=7 14107 n=14000 k=8 14107 规则 如果适用,您可以假定输入/输出将适合您语言的本机Integer类型。 输入和输出可以通过任何方便的方法给出。 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 禁止出现标准漏洞。 …

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.