大数库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;
}

 

 

 

posted @ 2022-05-05 15:04  sy20191325  阅读(32)  评论(0编辑  收藏  举报