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. **提交代码(或代码链接)和运行结果截图**
1.已提前完成安装
2.
![](https://img2022.cnblogs.com/blog/1812348/202205/1812348-20220505150202964-1973040161.png)
代码:
#include<stdio.h> #include <gmp.h> int main(int argc, const char *argv[]) { mpz_t z_i, z_s, z_o,z_a; mpz_init_set_str(z_i, "2", 10); mpz_init_set_str(z_s, "2", 10); mpz_init_set_str(z_o, "1", 10); mpz_init_set_str(z_a, "4", 10); int i; for (i = 0; i < 2018; i++) { mpz_mul(z_i, z_i, z_s); } gmp_printf("%Zd/n", z_i); mpz_clear(z_i); mpz_clear(z_s); mpz_clear(z_o); return 0; }
3.
代码:
#include <gmp.h> int main(int argc, const char *argv[]) { mpz_t z_i, z_s, z_o; mpz_init_set_str(z_i, "20191320", 10); mpz_init_set_str(z_s, "1", 10); mpz_init_set_str(z_o, "1", 10); int i; for (i = 0; i < 11; i++) { mpz_mul(z_s, z_s, z_i); mpz_add(z_i, z_i, z_o); } gmp_printf("%Zd/n", z_s); mpz_clear(z_i); mpz_clear(z_s); mpz_clear(z_o); return 0; }