生活百科知识

经验知识首页 > 电脑软件 > 详细经验讲解内容页

[视频]【Mathematica】寻找可截断的素数

关于奥拉星【Mathematica】寻找可截断的素数,期待您的经验分享,你就是当代的活雷锋,太感谢了 !
无情天魔精致 2018-12-30 17:17:23 32318人看过 分享经验到微博

更新:2024-04-02 13:33:54优秀经验

来自阿里云https://www.aliyun.com/的优秀用户无情天魔精致,于2018-12-30在生活百科知识平台总结分享了一篇关于“【Mathematica】寻找可截断的素数悦翔v5”的经验,非常感谢无情天魔精致的辛苦付出,他总结的解决技巧方法及常用办法如下:

Mathematica官方推出一种铅笔,上面写了一个很大的素数:357686312646216567629137。这个素数有一个特点,就是从左到右去掉前面若干个数字,剩下的数字仍旧是素数。作者在文中还给出了一个寻找这种素数的源代码。本文,先来解读作者给出的代码,并利用这个代码,寻找这一类素数。

工具/原料

电脑Mathematica

方法/步骤

1/6分步阅读

代码截图如下。

这是一个自定义函数TruncatablePrimes,其变量是正整数p,如果p不是素数,则返回一个空列表,如果p是素数,就新建一个包含p的子列表,并在这个子列表里面重复调用TruncatablePrimes函数,不过呢,此时TruncatablePrimes的变量,变成了在p的左边添加一个1到9的数字而形成的新的数字。

[图]2/6

以数字3结尾的截断素数,一共有2127个。

TruncatablePrimes[3]//Flatten//Length

[图]3/6

以数字3结尾的最大截断素数是:

Max[TruncatablePrimes[3]//Flatten]

[图]4/6

以数字1结尾的截断素数,需要分成五大类来寻找:

Column[Max[TruncatablePrimes[#]//Flatten]&/@{11,31,41,61,71}]

[图]5/6

通过枚举法可以证明,作者铅笔上的素数是最大的截断素数。

Max[(TruncatablePrimes[#&/@{3,7,9,11,31,41,61,71})//Flatten]

[图]6/6

不过,作者在原文给出的寻找最大的截断素数的代码是有疏漏的:

Take[Sort[Flatten[TruncatablePrime/@ Range[9]]], -5]

因为1默认不是素数,所以把1作为TruncatablePrime的变量,将返回一个空列表。这样导致的后果是,在枚举截断素数的时候,以1结尾的截断素数被忽略了。

[图]

编辑于2018-12-30,内容仅供参考并受版权保护

经验备注

我发现了这篇经验很有用:你也认同《【Mathematica】寻找可截断的素数》的经验分享有价值,就请和朋友们一起分享吧。另外,【Mathematica】寻找可截断的素数的经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。经验知识实用生活指南-解决你所有的生活难题!未经许可,谢绝转载。

本文网址:https://www.5058.cn/article/d5a880ebfb88c113f147ccab.html

下一篇