Здравствуйте.
У меня есть вопрос, который мучает меня довольно давно, надеюсь получить помощи по нему. Все что у меня сохранилось по нему, это бумага в котором в результате неких преобразований, производится шаг некого алгоритма, в результате которого, НОД полученных чисел равен НОД изначальных двух. Это не алгоритм Евклида, не бинарный и не алгоритм Лемера (хотя возможно имеет что-то общее с ними).
У меня нет точной информации об этом методе (если честно, нет вообще никакой информации), но насколько я знаю - так делать можно, т.е. это должно работать и у этого метода есть свои преимущества (насколько я понял, этот метод обладает субквадратичной трудоемкостью и его выгодно использовать для вычисления НОД двух очень больших чисел (насколько больших?))
Все что я о нем знаю, я прикрепил к теме в виде фотографии. Т.е. взяв два числа, над ними можно произвести примерно такие преобразования, и полученные в результате два числа будут иметь тот же НОД что и изначальные, т.е. этот способ можно использовать в качестве "редукции".
Вопрос, собственно, который не дает мне покоя. Что это за метод, и почему все именно так, а не иначе? Почему в моем примере, берут сначала первые две четыре цифры из каждого числа, сокращают их до двух, а потом делают преобразования с использованием оставшихся четырех цифр. Почему именно так? Что будет, если количество разрядов нечетное? Что делать, если в результате получилось что в одном из чисел разрядов на один больше чем в другом? Вычитать из первого второе, до тех пор, пока количество разрядов не будет равным?
Можно ли где-нибудь почитать про этот метод? Буду благодарен за любые детали относительно его использования и применения. В идеале, мне хотелось бы иметь четкое представление обо всех возможных случаях, которые могут возникнуть в ходе этого метода, для того чтобы иметь возможность четко реализовать его на каком-нибудь языке программирования.
Ссылка на описанный метод:
http://oi39.tinypic.com/2z4gzko.jpg