Библиотека NTL: Как назначить большое целое число ZZ_p

В библиотеке NTL я знаю, что мы можем определить большое целочисленное значение как:

ZZ p;
p=to_ZZ("1111111111111111111111111111111333333333333333");
ZZ_p::init(p);
ZZ_p b(12);

Мой вопрос: Что если я хочу назначить большое целое число b, а не 12?

например

ZZ_p b("1111111111111111111111111111111333333333333334");

Так должно по модулю p и назначить 1 в b,

Мне это нужно для fFindRoots(vec_ZZ_p& x, const ZZ_pX& ff), поэтому можно было бы вставить большие целые числа в вектор в качестве коэффициентов (полинома)

0

Решение

Первое: я попробовал код, который вы разместили, и строку ZZ_p b(12); не работал для меня.
Я должен был использовать

ZZ_p b;
b = 12;

Если вы хотите назначить большое целое число, вы можете сделать это

ZZ_p b;
b = to_ZZ_p(conv<ZZ>("1111111111111111111111111111111333333333333334"));

или же

char bigInteger[47] = "1111111111111111111111111111111333333333333334";
ZZ_p b;
b = to_ZZ_p(conv<ZZ>(bigInteger));

cout << b << endl; теперь будет печатать 1,

0

Другие решения


По вопросам рекламы [email protected]