大數庫GMP測試
阿新 • • 發佈:2022-05-05
0. 在openEuler(推薦)或Ubuntu或Windows(不推薦)中完成下面任務 1. 用自己8位學號建兩個資料夾xxxxxxxxsrc,xxxxxxxx,到[GMP官網https://gmplib.org/](https://gmplib.org/)下載最新程式碼到201x1xxxsrc,編譯程式碼並把GMP庫安裝到201x1xxx資料夾。(5') 2. 基於GMP的大數庫編寫測試程式碼測試大數運算,計算2的N次方,N為你學號的後四位(5‘) 3. 基於GMP的大數庫計算你以及前面5位同學和後面5位同學的8位學號的乘積,N為你學號的後四位(5‘) 4. **提交程式碼(或程式碼連結)和執行結果截圖**
1.已提前完成安裝
2.
程式碼:
#include<stdio.h> #include <gmp.h> int main(int argc, const char *argv[]) { mpz_t z_i, z_s, z_o,z_a; mpz_init_set_str(z_i, "2", 10); mpz_init_set_str(z_s, "2", 10); mpz_init_set_str(z_o, "1", 10); mpz_init_set_str(z_a, "4", 10); int i; for (i = 0; i < 2018; i++) { mpz_mul(z_i, z_i, z_s); } gmp_printf("%Zd/n", z_i); mpz_clear(z_i); mpz_clear(z_s); mpz_clear(z_o); return 0; }
3.
程式碼:
#include <gmp.h> int main(int argc, const char *argv[]) { mpz_t z_i, z_s, z_o; mpz_init_set_str(z_i, "20191320", 10); mpz_init_set_str(z_s, "1", 10); mpz_init_set_str(z_o, "1", 10); int i; for (i = 0; i < 11; i++) { mpz_mul(z_s, z_s, z_i); mpz_add(z_i, z_i, z_o); } gmp_printf("%Zd/n", z_s); mpz_clear(z_i); mpz_clear(z_s); mpz_clear(z_o); return 0; }