Реализации алгоритмов/P-1 метод Полларда: различия между версиями

Содержимое удалено Содержимое добавлено
дополнение
оформление
Строка 5:
=== С/С++ ===
Ниже приведен заготовка функции на С++, реализующая первую и вторую стадии алгоритма. Некоторые пояснения:
*: Класс Т — класс, с которым производятся вычисления, это может быть как стандартный числовой класс, например ''long int'', так и пользовательский класс, для которого необходимо [[w:Перегрузка процедур и функций | перегрузить]] функции и операции '+', '-', '+=', '-=', взятия остатка по модулю n '%', '%='.
*: Массив q — массив простых чисел меньше либо равных b (B в предыдущих обозначениях).
*: Массив p — массив простых чисел между границами <math>~ B1 </math> и <math>~B2= B1^2</math>.
*: Необходимо определить так же функции mulmod(T a,T b,T n)— перемножение чисел a,b по модулю n &nbsp <math>~ mulmod(a, b, n) = ab \mod n </math> , gsd(T a,T b) — поиск НОД чисел a и b, powmod(T a,T b, T n) — возведение числа a в степень b по модулю n <math>~ powmod(a, b, n) = a^b \mod n </math>.
*: Первая стадия выполняется для нескольких а.
<source lang=c>