> -- Madzi писал(а):
> 1/2, 2/3, 3/4, 4/5 - этот ряд т.н. дробей Фарея.Полностью он не представим с помощью чисел с плавающей запятой, поэтомуследует использовать представление в рациональных дробях.Соответственно и числитель и знаменатель будем возводить в p-ю степень по модулю отдельно.Если надо возводить отдельно, то ничего хорошего пока в этом я не вижу.

Моя идея была в том, чтобы перевести число из меньшей системы счисления (2k) в бОльшую (2(k+1)) последовательным умножением каждой цифры числа, начиная со старшей, на некий коэффициент с переносом остатка. "Вес" каждого разряда исходного числа = (2k)^р (где "р" - номер разряда, нумерация с нуля). "Вес" каждого разряда конечного числа = (2(k+1))^р. Соответственно, каждую цифру надо умножить на
(2k)^p/(2(k+1))^р = (k/(k+1))^p.
Знаменатель всегда больше числителя, мы производим деление. Целая часть результата помещается в тот же разряд "р" конечного числа, а остаток от деления учитывается при работе со следующим разрядом.

Ряд степеней отношения k/(k+1) можно вычислить заранее и запасти в массив. Преимущество метода в том, что если дроби удастся хорошо сократить, то возможно удастся обойтись без длинной арифметики.