大数库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. 提交代码(或代码链接)和运行结果截图

基于GMP的大数库编写测试代码测试大数运算,计算2的N次方,N为你学号的后四位

代码如下:

#include<gmp.h>
int main()
{
    mpz_t a, c;
    mpz_init(a);
    mpz_init(c);
    //计算2的1316次方
    mpz_init_set_ui(a, 2);
    mpz_pow_ui(c, a, 1316);
    gmp_printf("c = %Zd\n", c);
    mpz_clear(a);
    mpz_clear(c);
    return 0;
}

基于GMP的大数库计算你以及前面5位同学和后面5位同学的8位学号的乘积,N为你学号的后四位(5‘)

代码如下:

#include<gmp.h>
int main()
{
    mpz_t a, b, c, d;
    mpz_init(a);
    mpz_init(b);
    mpz_init(c);
    mpz_init(d);
    mpz_init_set_str(a,"20191311",10);
    mpz_init_set_str(b,"1",10);
    mpz_init_set_str(d,"1",10);
    for (int i=0;i<11;i++)
    {
        mpz_mul(d,d,a);
        mpz_add(a,a,b);
    }
    gmp_printf("d = %Zd\n", d);
    mpz_clear(a);
    mpz_clear(b);
    mpz_clear(d);
    return 0;
}
                       
posted @ 2022-05-05 15:13  20191316王秋雨  阅读(75)  评论(0编辑  收藏  举报