大数库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 @   20191316王秋雨  阅读(82)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示