Напишу тебе саму идею, во-первых для наглядности попробуй поделить уголком 1/7 и посмотри что у тебя получится, а получится у тебя то, что в конечном счёте какой-то из остатков будет равен 1, т.е числу m, которое мы делим на n(7).......таким образом твоя задача сводится к подсчёту кол-ва остатков, а это и будет длина периода!!!! а зная длину периода, думаю ты сам сможешь допетрить как его вывести?! Разьве не так?
В общем делаем типа того:
Код
var
c,m,k,n:integer
begin
c:=m; {запоминаем остаток, т.е число m}
m := (10 * m) mod n; {следующий остаток}
k:=1;
while m <> c do {далее топаем дальше, ищем пока остаток не повторится}
begin
m := (10*m) mod n;
inc(k); {считаем остатки}
{а дальше думаю напишешь сам!!!}
Ещё один момент, в начале проги частное m/n надо запомнить!!!! а то как же период выводить то?!!!!! короче потом частное умножаешь на кол-во остатков и выводишь целую часть int(m/n*k)..........
Если не понятно, напиши, объясним!!!!