Работа 3.5 Упр.17 Задание 2 ГДЗ Семакин 10 класс (Информатика)
Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 17 Дано натуральное число n > 1. Определить длину периода десятичной записи дроби 1/n. *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-5/zad2/17 98
Длина периода дроби $$\frac{1}{n}$$ зависит только от части числа $$n$$, не содержащей множителей $$2$$ и $$5$$. Поэтому сначала из $$n$$ нужно удалить все множители $$2$$ и $$5$$.
Далее вычисляется остаток при последовательном умножении на $$10$$ по модулю оставшегося числа. Как только остаток станет равным $$1$$, период замкнулся. Число выполненных шагов и есть длина периода.
var r, n, k: integer;
begin
repeat
write(‘n > 0; n = ‘);
readln(n)
until n > 0;
while n mod 2 = 0 do n := n div 2;
while n mod 5 = 0 do n := n div 5;
k := 0;
r := 1;
repeat
inc(k);
r := r * 10 mod n
until r <= 1;
writeln(k);
readln
end.
Здесь $$k$$ — длина периода, а $$r$$ — текущий остаток.
Ответ
Длина периода десятичной записи дроби $$\frac{1}{n}$$ находится после удаления из $$n$$ всех множителей $$2$$ и $$5$$; затем нужно последовательно считать остатки по формуле $$r := (r \cdot 10) \bmod n$$ до появления $$r = 1$$. Число шагов $$k$$ и есть длина периода.