找回密码
 欢迎注册
查看: 22559|回复: 22

[提问] 求一个最小的素数p,使得 p+2293是2的幂

[复制链接]
发表于 2016-11-2 16:28:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
俺用M10搜索计算了20分钟还不输出结果,中止了。谁的电脑牛,给算算看。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2016-11-2 17:17:53 | 显示全部楼层
对一般的奇数n,使得2^k-n为素数(包括负素数)的k都不会太大.
较小的一个例外是127,最小的k是47,最小p=2^47-127=140737488355201.
较小而十分可观的一个例外是337,最小k=791,最小p=2^791-337= 13023465689218465379062210528752456635048356098273258125773941038601635230112562639690297267327254474107284981627799297745876565730701884922584679789708652433779604647488309684498199777171511767048759797140403519495489742260696213459304111

这两个已经很奇特了,居然还有一个小小的2293跟无解似的,不会真的无解吧。

点评

@mathe 4-1871=-1867  发表于 2016-11-6 14:19
有点奇怪,为什么没有发现1871也类似  发表于 2016-11-5 19:00
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2016-11-2 17:21:53 | 显示全部楼层
这个不能光拼电脑,还得用些诀窍。
由于大整数n是素数概率只有$O(1/{log(n)})$
我们需要将需要提高判断算法中常系数的值
可以先使用筛选法要求结果不是小素数的倍数,也就是排除$2^n-2293$是小素数q的倍数,比如对于q小于10000而且q-1的素因子都不是太大
由此可以事先排除掉很多整数n
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2016-11-2 17:26:48 | 显示全部楼层
俺算337的也是一瞬间嘛,20分钟还不出结果的,那肯定已经很大了,可惜俺忘了取得k的值有多大,也不能再算了,怕把俺6G内存的机子撑破了。
恐怕俺的M10程序也不够高效。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2016-11-2 17:28:39 | 显示全部楼层
http://math.stackexchange.com/qu ... s-always-composite#

如果2^n-2293是素数,那么n=24k+1,并且n>300000.

点评

看来2293很特别,至少要拿前1000000范围内素数都筛一遍看看  发表于 2016-11-3 21:52
哇,居然是个Open problem.  发表于 2016-11-2 17:47

评分

参与人数 1金币 +8 经验 +6 鲜花 +6 收起 理由
hujunhua + 8 + 6 + 6 链结有用

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2016-11-2 20:34:11 | 显示全部楼层
俺眼拙了,居然把它发到小题大作里来了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2016-11-3 21:46:52 | 显示全部楼层
由于对于一个随机大整数N,它是素数概率大概为$1/{ln(N)}$,而对于奇数n,由于大整数$2^k-n$已经排除了2的倍数,概率要增大一倍,所以是素数概率为$2/{ln(2^k-n)}$,在k比较大时约为$2/{kln(2)}$,所以$k<=K$范围内找到素数概率大概为${2ln(K)}/{ln(2)}$
其中主要问题对于小的k上面公式估算不准,最好数值计算一下。但是可以知道,增长速度为很慢。但是如果我们已经搜索过对于$k<K_0$都无解,那么再$K_0<k<K_1$范围找到解的期望大概为\(\dfrac{2\left(\ln(K_1)-\ln(K_0)\right)}{\ln(2)}\),所以感觉通常数目翻倍后找到的可能性就已经不小了。所以如果在配合筛选法,找到候选解,问题就不大了,余下就是如果判断这些候选解中有真正的解,毕竟数值不小
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2016-11-3 22:34:40 | 显示全部楼层
对于$2^k-n$形式素数的搜索,我们可以先选定一个数M,比如M=1000000
1.判断是否存在小于M的满足条件的素数,下面进考虑不存在的情况
2.对于小于M的每个奇素数q,而且q不是n的因子,解方程$2^x=n(mod q)$,可以得出$x=x_q(mod q-1)$,
   由此,我们可以排除所有形如$x=x_q(mod q-1)$的k
  这部分复杂度最多$O(M^2)$,实际上还可以用复杂算法进行加速(如Class Index?)
3. 对没有被排除的k采用欧拉判别法快速排除非素数情况
   也就是先假设$P=2^k-n$是素数,于是对于较小整数$a$,(比如可以选a=2),必然有$a^{P-1}=1(mod P)$,或者$a^{2^k}=a^{n+1}(mod P)$
于是非常有意思,我们进需要先计算$a^n(mod P)$,然后对$a$连续关于模P平方k次
其中模P也可以加速,对于$1<=x<P^2$,我们可以写成$x=a+b*2^k=a+b*n(mod P)$,此后在此调整得到b必然很小,再使用一次就得出结果了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2016-11-4 11:45:50 | 显示全部楼层
到了n=300000这个地方要判断是不是素数已经很难了,2^300000数字长达9万位,如果没有排除p被小素数整除的可能性,那么下一步是判断是否满足费马小定理:$2^p\equiv2(mod p)$,这个判断起来也是很慢的。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2016-11-4 19:04:00 | 显示全部楼层
用上面试着写了个程序(效率不是很高),在花费30000秒左右,验算到17万以内均没有解。程序还在继续运行中,当然越后面越慢。
首先容易得出n必须是12k+1 (上面链接中提到24k+1我不知道是如何得出的),但是如果再次使用筛选法,大概可以变成每一万个数余70~80个数。也就是在1/12的基础上继续筛到约1/10
后面就是利用判别式$2^{2^k} -=2^{n+1}(mod 2^k-n)$

点评

n=24k+13时,2^n-2293可以被17整除。  发表于 2016-11-8 09:04
现在进度到27万没有找到结果。另外对于1871也类似  发表于 2016-11-6 08:37
已经超过20万了,没有找到解。运行时间复杂度大概在O(k^3).所以估计如果运行到一个星期,可以达到40万左右,如果再能引入多处理器并行运算等,处理到100万左右也就是极限了  发表于 2016-11-5 07:09
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-24 15:22 , Processed in 0.050102 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表