大数库GMP测试
1. 用自己8位学号建两个文件夹xxxxxxxxsrc,xxxxxxxx,到[GMP官网https://gmplib.org/](https://gmplib.org/)下载最新代码到201x1xxxsrc,
编译代码并把GMP库安装到201x1xxx文件夹。(5')


代码:
#include <iostream>
#include <gmpxx.h>
using namespace std;
int main()
{
mpz_t a,b,c;
mpz_init_set_str(a,"2",10);
mpz_init_set_str(b,"2",10);
for(int i=0;i<1228;i++)
{
mpz_mul(b,b,a);
}
gmp_printf("%Zd\n",b);
mpz_clear(a);
mpz_clear(b);
return 0;
}
2. 基于GMP的大数库编写测试代码测试大数运算,计算2的N次方,N为你学号的后四位(5‘)

代码:#include<gmpxx.h>
using namespace std;
int main()
{
mpz_t a, c;
mpz_init(a);
mpz_init(c);
mpz_init_set_ui(a, 2);
mpz_pow_ui(c, a, 1229);
gmp_printf("c = %Zd\n", c);
mpz_clear(a);
mpz_clear(c);
return 0;
}
3. 基于GMP的大数库计算你以及前面5位同学和后面5位同学的8位学号的乘积,N为你学号的后四位(5‘)

代码:
#include <gmpxx.h>
using namespace std;
int main()
{
mpz_t a, b, c;
mpz_init(a);
mpz_init(b);
mpz_init(c);
mpz_init_set_str(a, "2019122420191225201912262019122720191228", 10);
mpz_init_set_str(b, "2019123020191231201912322019123320191234", 10);//10进制
mpz_mul(c, a, b);
gmp_printf("c = %Zd\n", c);
mpz_clear(a);
mpz_clear(b);
mpz_clear(c);
return 0;
}

浙公网安备 33010602011771号