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

posted @ 2022-05-05 15:12  20191229XYZ  阅读(75)  评论(0)    收藏  举报