Автор | Сообщение |
|
Отправлено: 25.04.16 12:18. Заголовок: 20-81
81) Получив на вход число x, этот алгоритм печатает число M. Известно, что x > 100. Укажите наименьшее такое (т. е. большее 100) число x, при вводе которого алгоритм печатает 35. var x, L, M: integer; begin readln(x); L := x-20; M := x+15; while L <> M do if L > M then L := L - M else M := M – L; writeln(M); end. Кто-нибудь решал такую задачу??? Помогите решить, пожалуйста!!!
|
|
|
Ответов - 7
[только новые]
|
|
|
| Администратор
|
Сообщение: 1111
|
|
Отправлено: 25.04.16 12:21. Заголовок: timsc1 пишет: Кто-ни..
timsc1 пишет: цитата: | Кто-нибудь решал такую задачу??? Помогите решить, пожалуйста!!! |
|
Во-первых, нужно узнать алгоритм Евклида для вычисления наибольшего общего делителя (НОД). Дальше - излагайте свой путь решения, обсудим.
|
|
|
|
Отправлено: 25.04.16 12:52. Заголовок: В последний момент о..
В последний момент оба числа равны 35. Предыдущий шаг: 35+20=55 и 35-15=20; 55+20=75 и 20-15=5... Я думал в этом направлении, но попал в тупик...
|
|
|
|
| Администратор
|
Сообщение: 1115
|
|
Отправлено: 27.04.16 20:57. Заголовок: timsc1 пишет: Я дума..
timsc1 пишет: цитата: | Я думал в этом направлении, но попал в тупик... |
|
Повторюсь - нужно узнать алгоритм Евклида. Обратной прокруткой решить проблемно. Алгоритм Евклида находит наибольший общий делитель чисел M и L.
|
|
|
|
Отправлено: 04.05.16 12:12. Заголовок: то, что там алгоритм..
то, что там алгоритм Евклида, я заметил сразу... Не могу это связать с +20 и -15 и что там вообще делать...
|
|
|
|
| Администратор
|
Сообщение: 1126
|
|
Отправлено: 06.05.16 07:40. Заголовок: timsc1 пишет: что та..
timsc1 пишет: цитата: | что там алгоритм Евклида, я заметил сразу... Не могу это связать с +20 и -15 и что там вообще делать... |
|
Тогда получается, что числа x+20 и x-15 делятся на 35: x+20 = a*35 x-15 = b*35 Первое подходящее число, которое > 100, равно 125.
|
|
|
|
Отправлено: 12.05.16 14:24. Заголовок: Подробно так:
Подробно так: НОД(L,M)=35; Тогда L/35=n; M/35=k, где n и k - целые числа, т.е. числа x-20 и x+15 делятся на 35. L = x-20; (x-20)/35=n; x=35*n+20; x>100; 35*n+20>100; M = x+15; (x+15)/35=k; x=35*k-15; x>100; 35*k-15>100; Требуется найти наименьшее x. Ему будет соответствовать наименьшее целое значение n, найденное из 35*n+20>100, так как n < k; n=3; x=35*3+20=125; Нужно проверить это значение x=125: НОД(L,M)=НОД((125-20),(125+15))=НОД(105,140)=35; Задача решена. В других аналогичных задачах проверка x при найденном n может не дать нужного значения НОД(L,M). Тогда следует взять для n значение на единицу больше и снова проверить x. Обычно этого достаточно.
|
|
|
|
Отправлено: 28.03.18 09:56. Заголовок: polyakovss , спасибо..
polyakovss , спасибо!!!
|
|
|
|