找回密码
 欢迎注册
楼主: mathe

[擂台] 连续自然数构成的素数

[复制链接]
发表于 2008-4-23 17:42:57 | 显示全部楼层
定时以一个小时保存一次状态 和状态的MD5编码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-4-23 17:43:32 | 显示全部楼层
原帖由 无心人 于 2008-4-23 17:42 发表 你加上定时存盘和冗余纠错 我给你挂服务器上三个月
逃跑
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-4-23 17:47:04 | 显示全部楼层
这么大的工作量 无法保证在运行时机器断电 不做我说的那两点 最大运行时间只能是24小时 做不到7天
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-4-23 20:01:12 | 显示全部楼层
如果降序排列 在82产生素数 82818079...987654321是素数
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-4-23 20:50:36 | 显示全部楼层
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-4-24 07:49:32 | 显示全部楼层
无心人上面给出的外国网址,我去看了一下,他们给出的通项式 1/81*(10^(n+1)-9n-10) 当n在1至9时,符合我的连续自然数形式,当n=10以后,不满足连续自然数。 如n=10时,计算值1234567900,不是我要的12345678910 n=11时,计算值12345679011,不是我要的1234567891011 n=17,12345679012345677 请无心人验证我的计算是否正确 说明这个通项式不是连续自然数的通项式
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-4-24 08:06:55 | 显示全部楼层

回复 26# 的帖子

文中说过的,该公式仅适用于“up to n=9”
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-4-24 08:08:17 | 显示全部楼层
而对于n在10和99之间,100和999之间等等,都有类似的公式,只是一些系数不同。不过这个公式好像用处不大
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-4-24 09:12:25 | 显示全部楼层

快速测试到某个连续自然数是否为素数的代码

  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <assert.h>
  4. #include "../../../HugeCalc_API/CppAPI/Include/HugeCalc.h" // 公共接口
  5. #include "../../../HugeCalc_API/CppAPI/Include/HugeInt.h" // 10进制系统
  6. #pragma message( "automatic link to ../../../HugeCalc_API/CppAPI/Lib/HugeCalc.lib" )
  7. #pragma comment( lib, "../../../HugeCalc_API/CppAPI/Lib/HugeCalc.lib" )
  8. #define NUMB 82
  9. #define DIGITS_OF_NUMB 2 // digits of NUMB
  10. #define POW10_DIGITS 100 // 10^DIGITS_OF_NUMB
  11. int main( void )
  12. {
  13. const UINT32 len = ( NUMB + 1 )*DIGITS_OF_NUMB - ( POW10_DIGITS - 1 ) / 9;
  14. char *pBuf, *p;
  15. UINT32 i, d=0;
  16. p = pBuf = new char[len + 1];
  17. assert( NULL != pBuf );
  18. memset( pBuf, 0, ( len + 1 )*sizeof( char ));
  19. #if 0
  20. for ( i = 1; i <= NUMB; ++i )
  21. #else
  22. for ( i = NUMB; i > 0; --i )
  23. #endif
  24. {
  25. d = sprintf( p+=d, "%u", i );
  26. }
  27. assert( strlen(pBuf) == len );
  28. HugeCalc::EnableTimer();
  29. printf( CHugeInt( pBuf ).IsPrime() \
  30. ? "Is a prime number!\r\n" \
  31. : "Is not a prime number.\r\n" );
  32. HugeCalc::EnableTimer( FALSE );
  33. printf( "computation took %s\r\n", HugeCalc::GetTimerStr( FT_HHMMSS_ms ));
  34. delete []pBuf;
  35. return 0;
  36. }
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-4-24 10:50:58 | 显示全部楼层
玩素性检测看来不行了 可以考虑玩分解 不过分解代价很高
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-11-24 17:55 , Processed in 0.023801 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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