arximed, я бы делал так: сначала находим для дроби период вот по этому алгоритму:
Период бесконечной дроби N/M по основанию PА вот потом начинается самое интересное: при заполнении массива Ar просто просматриваем последние N заполненных ячеек (где N = длине периода), и если их содержимое совпадает с самим периодом - то все, заканчиваем цикл, и распечатываем значения...
Программу для проверки этого способа я написал, конечно, ее не покажу, но способ работает. Вот результаты прогона для дробей 1/7, 1/3, 2/3, 2/7, 7/30 и 3/8 соответственно (сначала печатается только период, а потом- результат):
Running "f:\vlady documents\programs\pas\__drb.exe a.txt a2.txt"
142857
0.(142857)
Running "f:\vlady documents\programs\pas\__drb.exe a.txt a2.txt"
3
0.(3)
Running "f:\vlady documents\programs\pas\__drb.exe a.txt a2.txt"
6
0.(6)
Running "f:\vlady documents\programs\pas\__drb.exe a.txt a2.txt"
285714
0.(285714)
Running "f:\vlady documents\programs\pas\__drb.exe a.txt a2.txt"
428571
0.(428571)
Running "f:\vlady documents\programs\pas\__drb.exe a.txt a2.txt"
3
0.2(3)
Running "f:\vlady documents\programs\pas\__drb.exe a.txt a2.txt"
0
0.375