• 大数库GMP测试


    大数库GMP测试

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

    用openeuler虚拟机

    安装gmp

    版本gmp-6.2.1.tar.lz

    sudo apt-get install m4
    sudo apt-get install lzip
    lzip -d gmp-6.2.1.tar.lz
    tar -xvf gmp-6.2.1.tar
    之后按如下步骤操作
    $cd gmp-6.2.1
    $./configure --enable-cxx
    $make
    $make check
    $sudo make install
    

    因为课前就完成了gmp下载,所以没有再次重新下载到20191315src和20191315学号文件夹里

    计算2的N次方,N为你学号的后四位;计算你以及前面5位同学和后面5位同学的8位学号的乘积

    代码

    #include<gmp.h>
    int main()
    {
        mpz_t a,c, b[11], c1[11], d;
        mpz_init(a);
        mpz_init(c);
        mpz_init(d);
        mpz_init_set_str(d, "1", 10);
        mpz_init_set_ui(a, 2);
        mpz_pow_ui(c, a, 1315);
        gmp_printf("c = %Zd\n", c);
    
        const  char s[11][9]={"20191310","20191311","20191312","20191313","20191314","20191315","20191316","20191317","20191318","20191319","20191320"};
        int i;
        for(i=0;i<11;i++)
        { 
             mpz_init(b[i]);
             mpz_init_set_str(b[i],s[i], 10);
             mpz_mul(d, d, b[i]); 
        }
    
        gmp_printf("d = %Zd\n", d); 
        for(i=0;i<11;i++){
        mpz_clear(b[i]);
        
        }
        mpz_clear(a);  
        mpz_clear(c); 
        mpz_clear(d); 
        return 0; 
    
    }
    

    结果

    c=2^1315(2的N次方,N为你学号的后四位)
    d=20191310~20191320 11个数的乘积(你以及前面5位同学和后面5位同学的8位学号的乘积)

    验证

    可得结果正确。

  • 相关阅读:
    上云,你真的只差一本葵花宝典
    Linux Kernel 4.11首个候选版本开放下载
    Windows 10 host where Credential Guard or Device Guard is enabled fails when running Workstation (2146361)
    .NET技术+25台服务器怎样支撑世界第54大网站
    Azure 订阅和服务限制、配额和约束
    python再议装饰器
    python的上下文管理器-1
    python的上下文管理器
    python小知识点
    python做简易记事本
  • 原文地址:https://www.cnblogs.com/harperhjl/p/16224875.html
Copyright © 2020-2023  润新知