2011-02-24 110 views
0

如何可以寫一個C++代碼,並且庫我可以使用計算情節除數或用於大整數一些類似的算術功能的總和,例如整數大於10^100 000在C++中計算和繪製大整數的算術函數?

例如,代碼,我在數學寫道:

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}]; 

我用數學8計算和繪製出來,但這需要時間過長,例如一天或更多。 C++中是否有任何代碼可以非常快速地計算大數的除數和。

我使用的是Windows 7 64位。我已經下載了Dev C++,codeblocks和Microsoft Visual C++ 2008 Express Edition。我問了一個人,他告訴我使用GMP(GNU多精度算術庫)。但我不知道如何使用它。

其實我需要類似下面的圖(連接點的線)不是像sin或cos那樣的平滑圖。

the sample graph type

感謝

+0

與GMP你可以創建'mpz_class'(用於多精度整數)與構造函數採取std ::字符串。通常的操作符被覆蓋以供您執行算術運算。 – Benoit 2011-02-24 09:07:55

+0

@Bernoit,我有code :: block和devC++。我如何在這個編譯器中使用gmplib。我下載了gmp-5.0.1.tar,gmp-4.3.1-1ext,gmp-4.3.1-2ext。但現在我不知道該怎麼做。 – asd 2011-02-28 10:38:12

回答