一个普罗斯数,弗朗索瓦·普罗斯命名,是可以表示为一个数
N = k * 2^n + 1
其中k
是奇数个正整数,n
是一个这样的正整数2^n > k
。让我们使用一个更具体的例子。取3。3是Proth数,因为它可以写成
(1 * 2^1) + 1
并2^1 > 1
感到满意。5也是Proth编号,因为它可以写为
(1 * 2^2) + 1
并2^2 > 1
感到满意。但是,7 不是 Proth编号,因为以表格形式写入的唯一方法N = k * 2^n + 1
是
(3 * 2^1) + 1
并且2^1 > 3
不满意。
您面临的挑战非常简单:给定正整数,您必须编写一个程序或函数,确定该程序或函数是否是Proth数字。您可以采用任何合理的格式输入,如果输出是Proth值,则应输出真实值,如果不是,则应输出错误值。如果您的语言具有“ Proth-number detection”功能,则可以使用它们。
测试IO
以下是前1000个Proth的前46个数字。(A080075)
3, 5, 9, 13, 17, 25, 33, 41, 49, 57, 65, 81, 97, 113, 129, 145, 161, 177, 193, 209, 225, 241, 257, 289, 321, 353, 385, 417, 449, 481, 513, 545, 577, 609, 641, 673, 705, 737, 769, 801, 833, 865, 897, 929, 961, 993
其他所有有效输入均应给出虚假值。
像往常一样,这是代码高尔夫球,因此存在标准漏洞,并且最短答案以字节为单位!
数论趣味性旁注:
不是 Mersenne Prime 的最大已知质数是19249 * 2^13018586 + 1
,恰好也是Proth数!