Помогите пожалуйста Даны две сцепленные шестеренки. У одной шестеренки N зубцов, у другой...

0 голосов
177 просмотров

Помогите пожалуйста
Даны две сцепленные шестеренки. У одной шестеренки N зубцов, у другой – K. Требуется найти, какое минимальное число поворотов на один зубчик требуется сделать, чтобы шестеренки вернулись в исходное состояние.

Входные данные
В единственной строке --- два натуральных числа N и K, не превосходящих 10 миллионов.

Выходные данные
Выведите искомое количество зубчиков. Гарантируется, что оно не более миллиарда.


Информатика (287 баллов) | 177 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Var
 N,K,R: integer;
 x,s: integer;
begin
 read(N,K);
 R := N;
 x := 2; s := 4;
 while s <= K do<br>  begin
  while K mod x = 0 do
    begin
    if N mod x = 0 then
      N := N div x
    else
      R := R * x;
    K := K div x;
    end;
  s := s + 2*x + 1;
  x := x + 1;
  end;
  if N mod K <> 0 then
    R := R * K;
  writeln(R)
end.

(8.5k баллов)