大数库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‘)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);
}
  • 运行结果

计算乘积

  • 代码
点击查看代码
#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;
}

  • 运行结果
posted @ 2022-05-05 15:14  修勾  阅读(36)  评论(0编辑  收藏  举报