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

[讨论] 9901素数!

[复制链接]
 楼主| 发表于 2008-12-24 20:02:57 | 显示全部楼层

挑战无心人!!!!!!!!

无心人的发帖数量实在是太多了! 为了遏制住他的发帖速度,建议他 在找出第四个9901素数之前不要 再发帖子! 也许根本就不存在第四个9901 素数,如果这样的话,他永远就不用发帖子了!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-12-24 20:04:48 | 显示全部楼层
你狠 超过一万位的数字很难测试
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-12-24 20:21:25 | 显示全部楼层
*Primes> filter isPrime $ take 1000 $ map (1+) $ (iterate (\x -> x * 10000 + 9900) 9900) 测试用代码,目前没发现第四个,上千位的测试,代码很慢 懒得用GMP或者HugeCalc测试 C代码不如Haskell好写
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-12-24 20:48:44 | 显示全部楼层
9900*(1+10^4+..+10^4k)+1 => 100*(10^(4k+1)-1)/101+1 => 判断素性不难。只要知道10^(4k+1)-1的素分解就ok了。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-12-24 21:02:13 | 显示全部楼层
判断素性不难。只要知道10^(4k+1)-1的素分解就ok了。
阁下难道不知道分解比素性判定要难得多???????? 不过,费马数的素性判定确实是个例外!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-12-24 21:05:27 | 显示全部楼层
这个素性判定也不是容易的啊 概率测试都难
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-12-24 21:05:55 | 显示全部楼层
素分解比素性测试麻烦得多。 我写了段代码,
  1. // HugeCalcDemo.cpp : Defines the entry point for the console application.
  2. //
  3. // Project -> Setting -> C/C++ -> Code Generation --> Use run-time library:
  4. // Win32 Debug: Debug Multithreaded DLL
  5. // Win32 Release: Multithreaded DLL
  6. #include <iostream.h>
  7. #include "../../../HugeCalc_API/CppAPI/Include/HugeCalc.h" // 公共接口
  8. #include "../../../HugeCalc_API/CppAPI/Include/HugeInt.h" // 10进制系统
  9. #include "../../../HugeCalc_API/CppAPI/Include/HugeIntX.h" // 16进制系统
  10. #pragma message("automatic link to ../../../HugeCalc_API/CppAPI/Lib/HugeCalc.lib" )
  11. #pragma comment( lib, "../../../HugeCalc_API/CppAPI/Lib/HugeCalc.lib" )
  12. int main(int argc, char* argv[])
  13. {
  14. cout << "Call " << HugeCalc::GetVer() << endl << endl;
  15. if ( HC_LICENSE_NONE == HugeCalc::GetLicenseLevel())
  16. {
  17. cout << endl << "警告:您未通过 HugeCalc.dll 的许可认证!" \
  18. << endl << endl << "解决方案可选下列方案之一:" \
  19. << endl << " 一、请将本程序移动到“/CopyrightByGuoXianqiang/[../]”目录下运行;" \
  20. << endl << " 二、或请在 HugeCalc.chm 中进行注册(一劳永逸)。" \
  21. << endl << endl;
  22. system( "pause" );
  23. return (-1);
  24. }
  25. // 初始化
  26. HugeCalc::EnableTimer( TRUE );
  27. HugeCalc::ResetTimer();
  28. CHugeInt p(1);
  29. UINT32 count = 0;
  30. UINT32 i = 0;
  31. do
  32. {
  33. ++i;
  34. if (((--p).DecLShift( 4 ) += 9901).IsPrime())
  35. {
  36. cout << HugeCalc::GetTimerStr(FT_HHMMSS_ms) << "\tNo." << ++count;
  37. cout << "\t(9900)" << i << "+1 is a prime number!" << endl;
  38. }
  39. #ifdef _DEBUG
  40. else if ( 0 == ( 0x3F & i ))
  41. {
  42. cout << HugeCalc::GetTimerStr(FT_HHMMSS_ms) << "\ti=" << i << endl;
  43. }
  44. #endif
  45. } while ( i < 1000 );
  46. system( "pause" );
  47. return 0;
  48. }
复制代码
可惜现在不敢耗用机器去寻找,等有空时再运行吧。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-12-24 21:06:09 | 显示全部楼层
#include #include int main(void) { mpz_t a; int i = 0; unsigned long t4 = 10000, t2s1 = 99; mpz_init(a); mpz_set_ui(a, 9901); while (i <= 1000) { i ++; if (mpz_probab_prime_p(a, 2)) printf("\nPrime %d\n", i); mpz_mul_ui(a, a, t4); mpz_sub_ui(a, a, t2s1); if (i % 100 == 0) printf("Test %d\n", i); } mpz_clear(a); return 0; } 重新写的C代码做测试
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-12-24 21:08:34 | 显示全部楼层
目前输出 E:\MinGW\MSYS\math>9901 Prime 1 Test 100 Prime 146 Test 200 Prime 230 Test 300 Test 400 Test 500 Test 600 Test 700
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-12-24 21:17:17 | 显示全部楼层
Test 700 Test 800 Test 900 Test 1000 没低于1000的新的了 有兴趣的修改我程序 每隔一定范围,保存下结果 连续算10天以上估计能测试到10000
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-11-22 00:08 , Processed in 0.023210 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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