我如何编写C++代码,以及我可以使用哪个库来计算和plot大整数的除数和或一些类似的算术函数,例如大于10^100 000的整数。
例如,我用Mathematica编写的代码:
g[n_] := Product[Prime[i], {i, 1, PrimePi[n]}];
k[999990]=g[237179]*g[661]*267064515689275851355624017992790*223092870*30030*44100*30*1296*512;
k[999991]=g[237173]*g[661]*23768741896345550770650537601358310*200560490130*30030*44100*30*7776*256;
k[999992]=g[237179]*g[661]*3217644767340672907899084554130*6469693230*30030*44100*30*7776*256;
k[999993]=g[237173]*g[673]*267064515689275851355624017992790*6469693230*30030*44100*900*1296*256;
k[999994]=g[237163]*g[677]*23768741896345550770650537601358310*200560490130*30030*44100*30*7776*256;
k[999995]=g[237179]*g[659]*23768741896345550770650537601358310*6469693230*30030*44100*30*1296*256;
ds[n_] := DivisorSigma[1, n]; %sum of divisors
f1[n_] := EulerPhi[n]; %number of coprimes less than n
d[n_] := DivisorSigma[0, n]; %number of divisors
f[n_] := DivisorSigma[1, n]/(n*Log[n]]);
sp[n_] := Sum[1/Prime[i], {i, 1, n}];
我使用Mathematica 8来计算和绘制它们,但是需要很长的时间,比如一天或更长的时间。在C++中是否有任何代码可以非常快地计算和计算大数的除数和和。
我使用windows 7 64位。我下载了Dev C++、代码块和MicrosoftVisualC++ 2008速成版。我问了一个人,他告诉我使用GMP( GNU多重精确算术库)。但我也不知道怎么用它!
实际上,我需要像下面这样的情节(线连接点),而不是像sin或cos这样的平滑图。
谢谢
发布于 2011-02-24 01:02:16
使用GMP库http://gmplib.org/进行这类繁重的计算。它使用大int来存储如此大的值。
https://stackoverflow.com/questions/5102405
复制