有二个问题
下面程序是求下一个素数的程序,经验证,成功运行。但是有2个问题:一:红色部分如果写成hugePrime=100000000000000000000000000000000000000000000000000000000就编辑不过,如何解决?
二:用hugePrime.DecLShift( 99 );来实现程序,结果会有<HugeCalc>的字符串插入,能否去掉?
#include <iostream.h>
#include <string.h>//可以使用string类型
#include "../../../HugeCalc_API/CppAPI/Include/HugeCalc.h" // 公共接口
#include "../../../HugeCalc_API/CppAPI/Include/HugeInt.h" // 10进制系统
#include "../../../HugeCalc_API/CppAPI/Include/HugeIntX.h" // 16进制系统
#pragma message( "automatic link to ../../../HugeCalc_API/CppAPI/Lib/HugeCalc.lib" )
#pragma comment( lib, "../../../HugeCalc_API/CppAPI/Lib/HugeCalc.lib" )
#if 1
#define _Test_HI
#define integer CHugeInt
#else
#define _Test_HX
#define integer CHugeIntX
#endif
//以上是一部分预处理程序
int main(int argc, char* argv[])
{
int i;
char c;//准备存取最后1位
cout << endl << "下面将生成前 100 个百位素数(十进制下)。。。" << endl << endl;
system( "pause" );//屏幕显示“按任何键继续”
cout << endl;
CHugeInt hugePrime((UINT32) 1 );
hugePrime=10000;//设初值
// hugePrime.DecLShift( 5 ); // 6位数
//下面是输出1000个素数
/* for ( UINT32 i=0; i<1000; ++i )
{
cout <<(LPCTSTR)hugePrime.NextPrime( hugePrime )<<endl ;
}*/
//下面是输出下1个素数
// cout <<(LPCTSTR)hugePrime.NextPrime( hugePrime )<<endl ;
cout <<(LPCTSTR)hugePrime.NextPrime(hugePrime)<<endl ;
//判断素数的长度 cout<<strlen(hugePrime)<<endl;
//以下是对结果的简单处理
/* i=strlen(hugePrime);
cout <<i<< endl;
c=hugePrime;
cout <<c<< endl;
cout << endl;*/
return 0;
} 问题一:hugePrime=100000000000000000000000000000000000000000000000000000000编译不过
因为内部数据无法支持这么大的整数,改成字符串就可以了:hugePrime="100000000000000000000000000000000000000000000000000000000"
问题二:结果会有<HugeCalc>的字符串插入
这是未注册的缘故,关于未注册的限制及如何注册请见 HugeCalc.chm 相关页面。
页:
[1]