Почему mpz_nextprime возвращает четное число (54)? - PullRequest
0 голосов
/ 05 мая 2019

Я должен найти первую терку простых чисел, затем 4, используя библиотеку, и я получаю 54 (переменная q2 в коде).Есть идеи почему?Может быть неисправность связана с 32-битным процессором компьютера?Буду очень признателен за вашу помощь!

Настоящий код:

    #include <iostream>
    #include <gmpxx.h>

    using namespace std;

    void generate_Keys()
    {

    mpz_t q,q2;
    int rndBit;
    gmp_randstate_t gmpRandState2;


    mpz_init(q);
    mpz_init(q2);

    rndBit = 4;

    gmp_randinit_default(gmpRandState2);

    mpz_urandomb(q, gmpRandState2, rndBit);
    cout<<" q="<<q;//4

    mpz_nextprime(q2,q);
    cout<<" nextprime="<<q2;//54
    }

    int main()
    {
    generate_Keys();
    return 0;
    }
...