大整數運行庫:GMP

來源:互聯網
上載者:User

GMP 是GNU Multiple-Precision 的縮寫,是一個免費的大整數運算庫,並且公開全部原始碼.其官方網站好像是GNU MP Home Page. 不過其上面的GMP 庫都是僅僅提供給Linux上使用的.

我上傳了一個Windows先行編譯版本到CSDN,可以靜態連結(lib目錄下),也可以動態連結(dll目錄下)

http://download.csdn.net/source/270555

將任意一個版本解壓到某個目錄下以後,將對應標頭檔目錄和庫檔案目錄添加到VC的標準標頭檔和庫檔案搜尋路徑裡面就可以了.比如VC6.0裡面可以通過菜單Tools/Options...,然後選擇標籤Directories,分別將路徑添加到Include files 和Library files裡面就可以了. (如果使用動態連結,最好將動態連結程式庫拷貝到標準執行目錄,如C:/Windows/System32等)

下面是一個我通過google找到的GMP庫的文檔:
GMP Manual

而在使用時,當然要在源檔案裡面加入
#include <gmp.h>

還要在Project Seetings裡面Link選項裡加入gmp.lib (或直接將gmp.lib插入工程).

如下面的代碼可以找出一些大素數:

#include <gmp.h>
#include <stdio.h>

int
main(void)
{
    int i;
    mpz_init(M);
    for(i=1;i<1000;i++){
       char *p=buf;
       int j;
       for(j=0;j<i-1;j++){
         p[j]='9';
       }
       p[j]='7';p[j+1]='/0';
       mpz_set_str(M, buf, 10);
       if(mpz_probab_prime_p(M, 10)){
          printf("Possible Prime:10^%d-3/n",i);
       }
    }
    mpz_clear(M);
    return 0;
}

此外,我的blog裡面還有些程式會使用GMP,比如計算n!最後面非零的18位元

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.