1. 程式人生 > 其它 >大數庫GMP測試

大數庫GMP測試

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