在多少个基数中N个回文?

此脚本生成与问题相关的序列正整数的基数N个是一个回文。N个当以一元形式表示时,将是一个回文,但是1不是合法基地,所以我们很担心仅以大于1的整数为基数。N个将是任何基的“单数字”回文大于N个,所以我们不会认为基数大于N个.

底座N个和底座N个-1为特殊情况。当它们足够大成为合法基地时,N个1 0在底座中N个、和1 1在底座中N个-1.后者总是一个回文,前者是回文,如果(且仅当)我们允许前导0s、 将其视为0 1 0.因此,我们默认只考虑基数B类

1<B<N-1

当我们计算其中的基数时N个是一个回文。包含基础的效果N个-1或N个就是增加在它们是合法基数的情况下,按一定数量进行计数。

选项

有几个变量影响回文的计数方式并进行了报告。它们可以通过使用环境变量,它是这些环境变量的名称我们将用于描述效果。

哈斯诺帕林斯

默认情况下,我们为每个N个,基数B类

1<B<N-1

在哪儿N个是一个回文。通过设置哈斯诺帕林斯=1,相反,我们报告的是N个计数为的0.

读者可能喜欢证明这一点N个大于6,只报告质数(但不是所有质数)。请参见哈斯诺帕林和复合数进行讨论。

STARTAT公司

我们默认从开始N个0.但是,对于N个小于

1<B<N-1

不包含基数,因此相应的计数将始终为0。您可以更改的初始值N个使用STARTAT公司.例如(假设,正如我们将贯穿始终的那样,您可以在命令行上设置环境变量,这个脚本被称为佩林.pl)

STARTAT=3 palin.pl

将于开始N个=.

挡脚板

默认情况下N个我们认为是100,1000什么时候哈索帕林1.如果挡脚板定义,它决定N个待考虑。

领导G0S

默认情况下,我们不计算它的基数提供一个或多个引线所必需的0要制作的N个回文。如果领导G0S1,我们计算这样的基数。

VERBOSE公司

通过设置VERBOSE=1,可以打印其他信息。这在以下情况下无效哈斯诺帕林斯1,因为没有太多其他的报道。它会更改默认报告以显示基础,和那些碱基中的回文,在哪儿N个被认为是回文,以及N个还有伯爵。

九月

默认报告中的计数用空格隔开。您可以指定要用于分隔的字符串计数到九月.

巴塞尔塔

我们默认只允许基数B类

1<B<N-1

计算基数时,其中N个被认为是回文。上限是通过添加巴塞尔塔值,默认为-1,至N个。您可以扩展或收缩通过修改基底三角洲值。通过使其大于-1,对计数没有任何有趣的影响,它只是增加一个常量值(任何扩展都会使哈斯诺帕林斯报告特别无趣)。

示例

下面是使用上述选项的几个示例。命令后立即显示输出。

STARTAT=12 STOPAFTER=12 palin.pl

1

我们使用STARTAT公司挡脚板限制N个设置为单个值,12。所有报告都是1,基数

1<B<12-1

在哪儿12是一个回文。如果您对更多内容感兴趣你可以做到

STARTAT=12 STOPAFTER=12 VERBOSE=1 palin.pl

5: 2 212: 1

你现在看到了122 2在底座中5,以及12.

提供隐含引导的效果0通过以下方式证明

STARTAT=12 STOPAFTER=12 VERBOSE=1 LEADING0S=1 palin.pl

2: 1 1 0 03: 1 1 04: 3 05: 2 26: 2 012: 5

尽管1 1 0 0在底座中2不是回文,如果我们提供两个领先0匹配尾部0秒。

挡板=12 palin.pl

0 0 0 0 0 1 0 1 1 1 2 0 1

基数的计数B类

1<B<N-1

在哪儿N个是的回文吗N个之间012.

止动块=12 BASEDELTA=0 palin.pl

0 0 0 1 1 2 1 2 2 2 3 1 2

基数的计数B类

1<B<N

在哪儿N个是的回文N个之间012.改变基底三角洲从默认-1允许基本N个-1,和,自N个1 1基础N个-1个用于N个大于2,这些术语的计数增加了1.设置巴塞尔塔1将允许基础N个成为考虑过,但N个1 0在底座中N个,这不是回文(除非我们设置领导G0S1以及),所以对计数没有影响。以上1,巴塞尔塔添加其中N个是“单数字”回文,N个,只要N个+巴塞尔塔-12或更多,因此是一个有效的基数。我们不认为巴塞尔塔下面的序列特别有趣。

STOPAFTER=12 SEP=“,”palin.pl

0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 2, 0, 1

使用逗号和空白分隔序列中的术语。

STOPAFTER=12 SEP=','领先G0S=1 palin.pl

0, 0, 0, 0, 1, 1, 2, 1, 3, 2, 4, 0, 5

允许领先0s(计算回文时)永远不会减少当然很重要,但它显然增加了某些条款的计数。

哈斯诺帕林和复合数

Stoppafter=200哈斯诺帕林=1 palin.pl

0 1 2 3 4 6 11 19 47 53 79 103 137 139 149 163 167 179

之后6,所有项都是质数。这不是偶然。复合数大于6有一个基地它们以回文形式出现。

首先考虑完美正方形,所以N个F类**2

N=F**2=F*F=(F-1+1)*(F-1/1)=(F-1)**2+2*(F-1

所以N个将是1 2 1基础F类-1只要F类大于(所以2是“数字”基数F类-1).这意味着所有大于9可以用回文来表示,9它本身就是1 0 0 1基础2,所以所有的正方形都大于6有回文基。

考虑下一个复合数字N个其最小素因子为P(P),所以N个P(P)*F类。我们已经处理了P(P)等于F类,所以我们可以假设P(P)严格小于F类.可以P(P)平等的F类-1? 是的,但是P(P)F类必须是偶数,P(P)最少的主要因素,所以P(P)必须是2F类必须是,我们只关心N个大于6.所以我们可以假设F类-1严格大于P(P).所以

N=P*F=P*(F-1)+P

所以N个太平洋基础F类-1.由此可见全部的复合数大于6有回文基。

顺便说一句,前导0对素数没有影响报告人哈斯诺帕林斯.如果P(P)没有回文基础什么时候领导G0S是on,那么它肯定没有回文基没有领导G0S,所以领导G0S无法添加新素数。还有任何新的基础B类(小于N个)由允许领导G0S必须有一个以结尾的回文0,这意味着N个是的倍数B类,因此,不是质数。所以领导G0S无法删除任何素数。