Questions tagged «number-theory»

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

15
我是Pillai素数吗?
甲皮莱素是素数为其中存在一些正米,使得(米!+ 1 )≡ 0pppmmm和 p ≢ 1(m!+1)≡0(mod p)(m!+1)≡0(mod p)(m! + 1) \equiv 0 \:(\text{mod } p)。p≢1(mod m)p≢1(mod m)p \not\equiv 1\:(\text{mod }m) 换言之,整数是一个素数皮拉伊如果它是一个素数,如果存在另一个正整数米,使得阶乘的米,加上1是整除p,如果p - 1不能被整除米。pppmmmmmm111pppp−1p−1p - 1mmm 给定一个正整数作为输入,请确定它是否为Pillai素数。皮莱素数的顺序是OEIS A063980。 例如,是Pillai素数,因为:232323 它是素数,只有2个因数。 和米= 18满足上述条件: 23 | (14 !+ 1 )和 14不划分 22 ; 23 | (18 !+ 1m=14m=14m = 14m=18m=18m = 1823∣(14!+1)23∣(14!+1)23 …

9
赛德尔三角
Seidel三角形是类似于Pascal三角形的数学结构,并因其与伯努利数的关系而闻名。 前几行是: 1 1 1 2 2 1 2 4 5 5 16 16 14 10 5 16 32 46 56 61 61 每行生成如下: 如果行号是偶数(1索引): 调低上一行的第一项 每个下一个项目是上一个项目及其上一个项目的总和 复制最后一个项目 如果行号是奇数: 调低上一行的最后一项 走向倒退,每一项都是前一个项目的总和,它上面的项目 复制现在的第一项。 基本上,我们以锯齿形构造三角形: 1 v 1 > 1 v 2 < 2 < 1 v 2 > 4 > 5 …

1
正则表达式为9的倍数
描述一个可以识别9的倍数的有限状态机很容易:跟踪数字总和(mod 9)并添加下一个接受的数字。这样的FSM只有9个状态,非常简单!通过FSM可识别性和常规语言之间的等效性,存在一个9的倍数的正则表达式。但是,任何此类正则表达式都可能……非常……长。与之类似,可能约为千兆字节。 在https://www.quaxio.com/triple/上有一个有效的示例,可用于3的倍数。在页面底部,作者提供了一种“手动优化”的解决方案,该解决方案比原始转换要短一些。 FSM到正则表达式。 挑战: 您必须制作一个正则表达式来检测9的倍数。由于这种正则表达式预计会很长,因此我要求您提供一个可以打印正则表达式的程序。(如果您真的想提供一个完整的正则表达式,也许将其放在其他位置并在此处链接!) 您必须能够告诉我们您程序输出的准确字符数-因此,只有在程序运行得足够快的情况下,才可以尝试尝试一定长度的所有正则表达式,直到找到有效的正则表达式,这是不可接受的运行它完成并给我们最终的正则表达式长度! 当然,点是用于具有最短的输出正则表达式,而不是基于程序长度。由于正则表达式是我要的“程序”,并且在这里方便地传输太长了,因此我仍在标记此代码高尔夫球。 规则: 输入将仅包含匹配的字符[0-9]*。 您的正则表达式应匹配 9的倍数,但不能匹配其他任何东西。并非完全由数字0-9组成且为无效输入的案例可以根据需要匹配或失败。 考虑到DFA易于识别的动机,所得的正则表达式实际上必须是更具理论性的术语中的正则表达式,也就是说,仅是封闭正则语言的运算符。确切地说,唯一允许的事情是: 文字,字符范围([ab],[a-f],[^k]),Kleene星(*),锚(^和$),通过括号分组,在交替(|),可选术语(?),一个或更多的术语(+),向前看符号((?=)),负向前看符号((?!)), lookbehinds( (?<=)),负lookbehinds( (?<!)),条件(如在https://www.regular-expressions.info/conditional.html - (?(?=test)then|else)),和有界长度的反向引用(见下文)。 那些东西例子不是不允许的: 任意长度的后向引用,前向引用,递归,子例程,循环结构,可执行代码,任何'eval'变体或用于将字符串转换为算术值的内置结构。 可以显示具有有限长度绑定字符串的反向引用是可以接受的,因为它们可以以有限状态存储并且不会改变语言的规则性。例如,正则表达式(..2.[3-5])4\1.\1是可以接受的,因为捕获组上有绑定长度\1。这是常规建筑。之类的构造(2*)0\1是不可接受的,因为捕获的组无法以有限状态存储。 您的正则表达式可以随意接受或拒绝带有多余前导零的整数。但是,"0"必须接受该字符串。

9
验证循环差异集
循环差集是一组具有唯一属性的正整数: 令其n为集合中的最大整数。 让r是(在该组不是必需的)的任何整数大于0但小于或等于n/2。 让k是解决方案的数量来(b - a) % n = r这里a和b是一组的任何成员。每个解决方案都是有序对(a,b)。(还要注意n,与许多语言的实现不同,此版本的模通过加负数使负数为正。) 最后,当且仅当这是一个循环差集时,的值k才取决于您对的选择r。就是说,所有的值都r为上述一致性提供相同数量的解。 可以通过以下示例进行说明: Cyclic difference set: {4,5,6,8,9,11} 0 < r <= 11/2, so r = 1,2,3,4,5 r=1: (4,5) (5,6) (8,9) r=2: (4,6) (6,8) (9,11) r=3: (5,8) (6,9) (8,11) r=4: (4,8) (5,9) (11,4) since (4-11)%11=(-7)%11=4 r=5: (4,9) (6,11) (11,5) 的每个值都r具有相同数量的解,在这种情况下为3,因此这是一个循环差集。 输入值 输入将是一个正整数列表。由于这是一个set属性,因此假设输入未排序。您可以假定n至少为2,尽管k可能为零。 …

30
多少个素数?
表示自然数的一种方法是乘以质数的指数。例如,6可以由2 ^ 1 * 3 ^ 1表示,而50可以由2 ^ 1 * 5 ^ 2表示(其中^表示指数)。与其他方法相比,此表示形式中的质数可以帮助确定使用这种表示方法是否更短。但是因为我不想手工计算这些,所以我需要一个程序为我做这些。但是,由于在回家之前我必须记住该程序,因此它必须尽可能短。 你的任务: 编写程序或函数以确定该数字表示形式中有多少个不同的质数。 输入: 通过任何常规方法获取的整数n,使得1 <n <10 ^ 12。 输出: 引言中概述了表示输入所需的不同素数的数量。 测试用例: 24 -> 2 (2^3*3^1) 126 -> 3 (2^1*3^2*7^1) 1538493 -> 4 (3^1*11^1*23^1*2027^1) 123456 -> 3 (2^6*3^1*643^1) 这是OEIS A001221。 得分: 这是代码高尔夫球,最低得分(以字节为单位)获胜!

14
计算威尔逊数
给定正整数n,计算第n 个 威尔逊数 W(n),其中 和ë = 1,如果Ñ具有原根Ñ,否则ê = -1。换句话说,如果不存在1 < x < n-1和x 2 = 1 mod n的整数x,则n具有原始根。 这是代码高尔夫球,因此请为计算n的函数或程序创建最短的代码输入整数 n > 0的第个威尔逊数。 您可以使用基于1或基于0的索引。您也可以选择输出前n个威尔逊数。 这是OEIS序列A157249。 测试用例 n W(n) 1 2 2 1 3 1 4 1 5 5 6 1 7 103 8 13 9 249 10 19 11 329891 12 …

15
最大互素数分解
定义 如果两个数字的唯一正公约数是,则它们是互质的1。 如果该列表中的每对数字互为互素,则该数字互斥互质。 数字的因式分解n是其乘积为的数字列表n。 任务 给定一个正数n,输出n不包含的最大长度的互互素因式分解1。 例 对于n=60,答案是[3,4,5],因为3*4*5=60没有其他互互素因式分解的1长度大于或等于3分解的长度。 规则与自由 您可以使用任何合理的输入/输出格式。 输出列表中的条目无需排序。 测试用例 n output 1 [] 2 [2] 3 [3] 4 [4] 5 [5] 6 [2, 3] 7 [7] 8 [8] 9 [9] 10 [2, 5] 11 [11] 12 [3, 4] 13 [13] 14 [2, 7] 15 [3, 5] 16 …

19
将我的斐波那契除数相加!
著名的斐波那契数列是F(0) = 0; F(1) = 1; F(N+1) = F(N) + F(N-1)(对于这个挑战,我们从0开始)。 您的挑战:由于ñ,输出所有的总和d个斐波那契数为所有除数Ð的的ñ个Fibonacci数。如果您希望使用更正式的符号, 输入:正整数n 输出:总和 例如,考虑n=4。F(4) = 33的除数是1和3,因此输出应为F(1) + F(3) = 1 + 2 = 3。 对于n=6,F(6) = 8和,8的除数是1,2,4,8,因此输出是F(1) + F(2) + F(4) + F(8) = 1 + 1 + 3 + 21 = 26。 测试用例: 1 => 1 2 => …

8
可达号码
定义 欧拉披(Euler Phi)函数(又称totient函数):该函数接受一个正数,并返回小于给定数的正数,这些正数与给定数互质。表示为φ(n)。 可达数:如果存在一个正整数x,使得φ(x) == n,然后n是可到达的。 任务 编写函数/程序以确定给定的正整数是否可以达到。 输入值 任何合理格式的正数。可以假定数字在该语言的能力范围内。一元输入被接受。 输出量 两个一致的值,一个用于可访问的数字,另一个用于不可访问的数字。两个值可以是任意值,只要它们是一致的即可。 测试用例 以下是可接通的电话号码100: 1,2,4,6,8,10,12,16,18,20,22,24,28,30,32,36,40,42,44,46,48,52,54,56,58,58, 60、64、66、70、72、78、80、82、84、88、92、96 (OEIS上为A002202) 规则 有标准漏洞。 获奖标准 这是代码高尔夫球。提交的字节数最少。 参考文献 欧拉·菲函数 OEIS A002202

1
混淆整数表示法
编辑:我将meta-golf很快发布此问题的较新版本。保持警惕! 编辑2:我将不再更新挑战,但将其保持打开状态。该meta-golf版本位于此处:https : //codegolf.stackexchange.com/questions/106509/obfuscated-number-golf 背景: 大多数数字只能用6个不同的符号书写: e (欧拉常数) - (减,非负) ^ (求幂) ( ) ln (自然对数) 例如,您可以i使用以下等式转换虚数: (e-e-e^(e-e))^(e^(e-e-ln(e^(e-e)-(e-e-e^(e-e))))) 目标: k通过任何合理的方式给定任何整数,仅使用这6个符号输出该数字的最短表示。 例子: 0 => "e-e" 1 => "ln(e)" 2 => "ln(ee)" // Since - cannot be used for negation, this is not a valid solution: // ln(e)-(-ln(e)) -1 => "e-e-ln(e)" 笔记: …

12
生成Linus序列
定义 根据OEIS A006345的描述: 要查找a(n),请考虑a 1或a 2。对于每个a(n)=1,2序列,找到最长的重复后缀,即对于每个序列,找到s具有序列a(1),...,a(n)结尾的最长序列ss。使用导致后缀较短的数字。a(1) = 1。 解决的例子 a(1)=1。 如果是a(2)=1,我们将得到1 1从末尾最长的一倍子串是的序列1。如果a(2)=2不是,那么它将是空的子字符串。因此a(2)=2。 什么时候n=6,我们在1 2 1 1 2 1和之间选择1 2 1 1 2 2。在首选中,1 2 1从末尾开始连续翻倍。在第二选择中,它是2。因此,a(6)=2。 什么时候n=9,我们在1 2 1 1 2 2 1 2 1 和之间选择1 2 1 1 2 2 1 2 2。在第一种选择中,最长的双倍连续子字符串是2 1,而在第二种选择1 2 2中,最后连续地双倍连续。因此a(9)=1。 任务 给定n,退货a(n)。 眼镜 n …

14
验证沃尔斯滕霍姆定理
定义 沃尔斯滕霍姆定理指出: 其中 a和b是正整数,p是素数,大括号是二项式系数。 任务 为了验证这一点,你将有三个输入:a,b,p,其中a和b是正整数且p是素数。 计算: 其中 a和b是正整数,p是质数,括号thing是二项式系数。 眼镜 以来: 其中,圆括号是二项式系数。 您可以假设 2b <= a 测试用例 a b p output 6 2 5 240360 3 1 13 3697053 7 3 13 37403621741662802118325

5
我需要将多少个平方,立方,四次幂等求和为n?
您会得到一个非负整数n和一个integer p >= 2。您需要将一些次p幂(p=2即正方形,p=3表示立方体)加在一起才能得到n。这始终适用于任何非负数n,但您不知道需要多少次p幂(任何正整数)。 这是您的任务:找到p可以求和的最小n 次方n。 例子 >>> min_powers(7, 2) 4 # you need at least four squares to add to 7 # Example: (2)^2 + (1)^2 + (1)^2 + (1)^2 = 4 + 1 + 1 + 1 = 7 >>> min_powers(4, 2) 1 # you need at least …

11
N门,K猴子
有N个门和K个猴子。最初,所有的门都是关闭的。 第1轮:第1只猴子拜访每扇门并拨动门(如果门关闭,则打开;如果门打开,则关闭)。 第二回合:第一只猴子拜访每扇门并拨动门。然后,第二只猴子每隔第二个门访问一次并切换门。 。。。 。。。 回合k: 第一只猴子拜访每扇门并拨动门。。。。。。。。。。第k只猴子会访问第k个门,然后打开门。 输入: NK(以单个空格分隔) 输出: 打开的门号,每个门号之间用一个空格隔开。 范例: 输入:3 3 输出:1 2 限制条件: 0 <N <101 0 <= K <= N 注意事项: 假设N个门的编号从1到N,K个猴子的编号从1到K 代码最短的一方获胜。另外,显示输出为N = 23,K = 21

6
莱利定理
S. Ryley于1825年证明了该定理: 每个有理数可以表示为三个有理立方体的总和。 挑战 鉴于一些有理数r∈Qr∈Qr \in \mathbb Q 发现三个有理数a,b,c∈Qa,b,c∈Qa,b,c \in \mathbb Q,使得r=a3+b3+c3.r=a3+b3+c3.r= a^3+b^3+c^3. 细节 给定足够的时间和内存,您的提交应该能够为每个输入计算一个解决方案,这意味着仅用两个32位int表示一个分数是不够的。 例子 305230717280142=39829338766813−6366005495153−39775055545463=607029013173+239612924543−619227128653=(12)3+(13)3+(14)3=03+03+03=(12)3+(23)3+(56)3=(1810423509232)3+(−1495210609)3+(−25454944)330=39829338766813−6366005495153−3977505554546352=607029013173+239612924543−6192271286533071728=(12)3+(13)3+(14)30=03+03+031=(12)3+(23)3+(56)342=(1810423509232)3+(−1495210609)3+(−25454944)3 \begin{align} 30 &= 3982933876681^3 - 636600549515^3 - 3977505554546^3 \\ 52 &= 60702901317^3 + 23961292454^3 - 61922712865^3 \\ \frac{307}{1728} &= \left(\frac12\right)^3 + \left(\frac13\right)^3 + \left(\frac14\right)^3 \\ 0 &= 0^3 + 0^3 + 0^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.