Найти b из НОК (a,b)=c - PascalABC.NET
Формулировка задачи:
Здравствуйте! Нуждаюсь в помощи по решению задачки.
Никак не могу придумать, как реализовать нахождение b из НОК (a,b)=c, где а и с - входные данные.
(Кроме перебора b посредством b:=b+1 в цикле с последующей подстановкой и проверкой), но проблема в том, что при больших числах ответ нужно ждать довольно долго, а максимальное время на выполнение программы - 1с.
За помощь заранее спасибо.
Решение задачи: «Найти b из НОК (a,b)=c»
textual
Листинг программы
while c mod (b*d)=0 do b:=b*d;
Объяснение кода листинга программы
В данном коде на языке PascalABC.Net реализуется алгоритм нахождения наименьшего общего кратного (НОК) для трех чисел a, b и c.
- Переменная
c
инициализируется значением НОК(a, b). - Переменная
d
инициализируется значениемc mod b
. - Запускается цикл while, который выполняется до тех пор, пока
c mod (b*d)
равно нулю. - Внутри цикла значение переменной
b
обновляется как произведениеb
иd
. - После выхода из цикла значение переменной
b
будет содержать искомый результат - НОК(a, b).