找回密码
 欢迎注册
楼主: 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 <stdio.h>
#include <gmp.h>

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-4-24 21:27 , Processed in 0.042896 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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