首页 > 技术文章 > 大数库GMP测试

zzjjyy123 2022-05-05 15:05 原文

任务详情

  1. 在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务
  2. 用自己8位学号建两个文件夹xxxxxxxxsrc,xxxxxxxx,到GMP官网https://gmplib.org/下载最新代码到201x1xxxsrc,编译代码并把GMP库安装到201x1xxx文件夹。(5')
  3. 基于GMP的大数库编写测试代码测试大数运算,计算2的N次方,N为你学号的后四位(5‘)
  4. 基于GMP的大数库计算你以及前面5位同学和后面5位同学的8位学号的乘积,N为你学号的后四位(5‘)
  5. 提交代码(或代码链接)和运行结果截图

任务过程

安装结果

代码1:

#include<stdio.h>
#include<gmp.h>

int main(){
        mpz_t z_a,z_o;
        mpz_init(z_a);

        mpz_init(z_o);
        gmp_scanf("%Zd%Zd",z_a,z_o);
        int i;
        for(i=0;i<1223;i++)
        {
                mpz_mul(z_o,z_o,z_a);
        }
        gmp_printf("%Zd\n",z_o);
        return 0;
}

运行结果:

代码2:

#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, "2019121820191219201912202019122120191222", 10);
    mpz_init_set_str(b, "2019122420191225201912262019122720191228", 10);//10进>制 

    mpz_mul(c, a, b);

    gmp_printf("c = %Zd\n", c);
    mpz_clear(a);
    mpz_clear(b);
    mpz_clear(c);

    return 0;
}

运行结果:

推荐阅读