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

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

[复制链接]
发表于 2008-5-8 23:40:26 | 显示全部楼层
寻找连续自然数构成的素数外国人比我们研究得早,至今没有发现一个素数。
不过,从任意自然数数段上开始的素数也少得可怜,百年才遇一个火烧天。
比如,今年是2008年,从2008开始写起,一直写到2023年才是一个素数,以后不知何年何月才见素数这个美丽姑娘的出现。
2008200920102011201220132014201520162017201820192020202120222023
如果像下列数列会有素数出现吗
从10或100或1000开始,以9结尾
100101102103104105106107108109
500501502503504505506507508509
找到一个素数200201202203204205206207208209
我出生在1974年,从1974开始写起1974197519761977……,直到我老死,也没有见着一个鬼素数。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-9 07:57:03 | 显示全部楼层
与楼上同龄。

我写了段代码,得到如下结果:从2000起写到2003止为素数;从2009起写到2049止为素数。

代码如下,大家可以自修改编译运行(试试以你中意数字起头的搜索):
  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. //  printf("Hello World!\n");

  15.         UINT32 i = 2000;
  16.         CHugeIntX hugeTest(i);

  17.         cout << "Call " << HugeCalc::GetVer() << endl << endl;

  18.         if ( HC_LICENSE_NONE == HugeCalc::GetLicenseLevel())
  19.         {
  20.                 cout << endl << "警告:您未通过 HugeCalc.dll 的许可认证!" \
  21.                         << endl << endl << "解决方案可选下列方案之一:" \
  22.                         << endl <<        "        一、请将本程序移动到“/CopyrightByGuoXianqiang/[../]”目录下运行;" \
  23.                         << endl <<        "        二、或请在 HugeCalc.chm 中进行注册(一劳永逸)。" \
  24.                         << endl << endl;
  25.                 system( "pause" );
  26.                 return (-1);
  27.         }

  28.         HugeCalc::EnableTimer();
  29.         HugeCalc::ResetTimer();

  30.         while ( 10000 > ++i )
  31.         {
  32.                 ( hugeTest *= 10000 ) += i;

  33.                 if ( hugeTest.IsPrime() )
  34.                 {
  35.                         cout << HugeCalc::GetTimerStr( FT_HHMMSS_ms ) << "\ti = " << i << "\tOK" << endl;
  36.                 }
  37.                 else if ( 0 == i & 0xFF )
  38.                 {
  39.                         cout << HugeCalc::GetTimerStr( FT_HHMMSS_ms ) << "\ti = " << i << endl;
  40.                 }
  41.         }

  42.         system( "pause" );

  43.         return 0;
  44. }
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-9 08:11:36 | 显示全部楼层


你给增加一个输入开始数字语句不就可以了么?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-9 08:12:52 | 显示全部楼层
想列出个是3的倍数的模式
发现还挺复杂

谁有好主意?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-9 08:15:47 | 显示全部楼层
原帖由 无心人 于 2008-5-9 08:11 发表


你给增加一个输入开始数字语句不就可以了么?


因为代码很少,编译所费时间远小于运行时间。

当然,时间仓促,代码写得粗糙了点,但不影响使用。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-4-19 10:36 , Processed in 0.039880 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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