В библиотеке 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)
, поэтому можно было бы вставить большие целые числа в вектор в качестве коэффициентов (полинома)
Первое: я попробовал код, который вы разместили, и строку 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
,