Формальное описаниеВходные данные: a — целое число, b — натуральное, нечётное, больше единицы. Выходные данные: — символ Якоби 1 (проверка взаимной простоты). Если НОД (a, b)≠1, выход из алгоритма с ответом 0. 2 (инициализация). r:=1 3 (переход к положительным числам). Если a<0 то a:=-a Если b mod 4 = 3 то r:=-r Конец если 4 (избавление от чётности). t:=0 Цикл ПОКА a – чётное t:=t+1 a:=a/2 Конец цикла Если t – нечётное, то Если b mod 8 = 3 или 5, то r:=- r. Конец если 5 (квадратичный закон взаимности). Если a mod 4 = b mod 4 = 3, то r:=- r. c:=a; a:=b mod c; b:=c. 6 (выход из алгоритма?). Если a ≠0, то идти на шаг 4, иначе выйти из алгоритма с ответом r.Комментарии к алгоритму. В алгоритме везде берётся наименьший положительный вычет (то есть остаток от деления). На четвёртом шаге используется мультипликативность символа Якоби, а затем вычисляется символ Якоби . Чтобы избежать лишнего возведения в степень, проверяется только остаток от деления b на 8. На пятом шаге тоже вместо возведения в степень используется проверка остатков от деления. Сложность алгоритма равна битовых операций.
|