任务详情
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‘)20
3. 基于GMP的大数库计算你以及前面5位同学和后面5位同学的8位学号的乘积,N为你学号的后四位(5‘)
4. **提交代码(或代码链接)和运行结果截图**
计算2的1329次方
点击查看代码
#include<gmp.h>
//using namespace std;
int main()
{
mpz_t a,b,c,d;
mpz_init(a);
mpz_init(b);
mpz_init(c);
mpz_init(d);
mpz_init_set_ui(a,2);
mpz_pow_ui(c,a,1329);
gmp_printf("c= %Zd\n",c);
}
- 运行结果
![](https://img2022.cnblogs.com/blog/1814433/202205/1814433-20220505145008208-877483227.png)
计算乘积
点击查看代码
#include<gmp.h>
#include<stdio.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,"1",10);
mpz_init_set_str(b,"20191324",10);
mpz_init_set_str(c,"1",10);
int i;
for(i=20191324;i<20191334;i++)
{
mpz_mul(a,a,b);
}
gmp_printf("result= %Zd\n",a);
mpz_clear(a);
mpz_clear(b);
mpz_clear(c);
return 0;
}
- 运行结果
![](https://img2022.cnblogs.com/blog/1814433/202205/1814433-20220505152040522-1600467244.png)