连续123456789组成的素数
求完全由123456789重复排列取前N位组成的素数比如1234567891就是
可以断定,其末位必须是1或者7 1234567891234567891234567891也是 1234567891234567891234567891234567891234567891234567891234567891234567也是 200位内无其他该类素数 幻方及其他:娱乐数学经典名题
张景中
这本书中有这方面的论述 :)
能把我这里没有的贴上来么》 从整体是、来看,素数是一种无序的数,其中出现的数字是随机的,杂乱的,没有规律的。但是也有少数素数,恰恰是有1~9这9个数字或其一部分的顺序或逆序排列形成的,从而引起人们的兴趣与注意。数字以升序排列的素数有
23,67,89,4567,...,23456789,1234567891,...
1972年,Bowling Green大学的拉斐尔.芬克尔斯坦(Raphael Finkelstein)等人发现了一个28位的顺序数字素数:
1234567891234567891234567891
1978年,艾伦.凯赛尔(Allan Cassel)打破了这个记录,发现了一个由123456789重复达9次,最后以1234567结尾的长达70位的这样一个素数(这里我怀疑作者有笔误,应该是重复7次才对)
123456789(重复7次)....123457
这个记录至今无人能够打破。
这是节选书上的一段文字 原帖由 无心人 于 2008-4-23 19:34 发表 http://images.5d6d.net/dz60/common/back.gif
1234567891234567891234567891234567891234567891234567891234567891234567也是
跟你这个结论一致:)
快速搜索的源代码
这个问题相当于每次把数据在后面追加9个字符,与 HugeCalc 内部数据结构正好一致,所以用 HugeCalc 中的 DecLShift() 函数,可以获得非常高的效率。
我写了一个代码,可以对楼主要求的两种类型的素数均可快速搜索,
机器强劲的朋友也许有望可打破当前的世界纪录:victory: :#include <stdlib.h>
#include <stdio.h>
#include "../../../HugeCalc_API/CppAPI/Include/HugeCalc.h" // 公共接口
#include "../../../HugeCalc_API/CppAPI/Include/HugeInt.h" // 10进制系统
#pragma message( "automatic link to ../../../HugeCalc_API/CppAPI/Lib/HugeCalc.lib" )
#pragma comment( lib, "../../../HugeCalc_API/CppAPI/Lib/HugeCalc.lib" )
int main( void )
{
#if 0
const UINT32 tail = 234567891;
CHugeInt test( 1 );
#else
const UINT32 tail = 891234567;
CHugeInt test( 1234567 );
#endif
printf( "tail is '%u'\r\n", tail );
HugeCalc::EnableTimer();
HugeCalc::ResetTimer();
UINT32 u32Repeat = 0;
while( 1000 > ++u32Repeat )
{
test.DecLShift( 9 ) += tail;
if ( test.IsPrime() )
{
printf( "%s\trepeat=%u\tdigits=%u\tOK!\r\n", HugeCalc::GetTimerStr( FT_HHMMSS_ms ), u32Repeat, test.GetDigits() );
}
else if ( u32Repeat % 20 == 0 )
{
printf( "%s\trepeat=%u\r\n", HugeCalc::GetTimerStr( FT_HHMMSS_ms ), u32Repeat );
}
}
HugeCalc::EnableTimer( FALSE );
return 0;
}运行数据如下:tail is '891234567'
00:00:00.001 repeat=7 digits=70 OK!
00:00:00.019 repeat=20
00:00:00.172 repeat=40
00:00:00.490 repeat=60
00:00:01.645 repeat=80
00:00:03.244 repeat=100
00:00:06.986 repeat=120
00:00:11.262 repeat=140
00:00:20.644 repeat=160
00:00:30.800 repeat=180
00:00:44.765 repeat=200
00:01:07.357 repeat=220
00:01:29.514 repeat=240
00:02:10.580 repeat=260
00:02:53.391 repeat=280
00:03:52.707 repeat=300
在 4 分钟内,已算到近 3000 位。 回复8#
国内的书多数抄袭国外的书,而且资料陈旧的很。
所以其结论不可信
页:
[1]