c语言使用gmp库运算

1.计算2^1000

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

int main()
{
        mpz_t a,b;

        mpz_init(a);
        mpz_init(b);

        mpz_init_set_ui(a, 2);
        mpz_pow_ui(b, a, 1000);
        gmp_printf("b = %Zd\n", b);

        mpz_clear(a);
        mpz_clear(b);

        return 0;
}

2.计算12345678900987654321*98765432100123456789

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

int main()
{
        mpz_t a,b,c;

        mpz_init(a);
        mpz_init(b);
        mpz_init(c);

        mpz_init_set_str(a, "12345678900987654321", 10);
        mpz_init_set_str(b, "98765432100123456789", 10);
        mpz_mul(c, a, b);
        gmp_printf("c = %Zd\n", c);

        mpz_clear(a);
        mpz_clear(b);
        mpz_clear(c);

        return 0;
}

3.计算大于12345678900987654321的最小质数

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

int main()
{
        mpz_t a,b;

        mpz_init(a);
        mpz_init(b);

        mpz_init_set_str(a, "12345678900987654321", 10);
        mpz_nextprime(b, a);
        gmp_printf("b = %Zd\n", b);

        mpz_clear(a);
        mpz_clear(b);

        return 0;
}

4.编译

$ gcc -o case-1 case-1.c -lgmp
$ gcc -o case-2 case-2.c -lgmp
$ gcc -o case-3 case-3.c -lgmp
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第一章数和数的运算 一概念 (一)整数 1整数的意义 自然数和0都是整数。 2自然数 我们在数物体的时候,用来表示...
    meychang阅读 2,847评论 0 5
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,681评论 1 32
  • 进制基本概念 什么是进制?进制是一种计数的方式,数值的表示形式 常见的进制十进制、二进制、八进制、十六进制 进制书...
    极客江南阅读 2,201评论 0 11
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 4,081评论 0 2
  • 1)程序结构是三种: 顺序结构 、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上...
    杵臼凉薄yo阅读 2,421评论 0 7

友情链接更多精彩内容