在C ++中为大整数计算和绘制算术函数?

时间:2011-02-24 08:58:17

标签: c++ plot biginteger

如何编写C ++代码以及哪些库可用于计算绘图除数的总和或大整数的类似算术函数,例如整数大于10 ^ 10万。

例如我在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 ++,codeblocks和Microsoft Visual C ++ 2008 Express Edition 。我问了一个人他告诉我使用GMP(GNU多精度算术库)。但我不知道如何使用它。!

实际上我需要像下面这样的图(连接点的线)不是像sin或cos这样的平滑图。

the sample graph type

感谢

1 个答案:

答案 0 :(得分:1)

使用GMP库http://gmplib.org/ 对于所有这些繁重的计算。它使用big int来存储这样大的值