Var
N,K,R: integer;
x,s: integer;
begin
read(N,K);
R := N;
x := 2; s := 4;
while s <= K do
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.
4литра черной в бутыли
5л белой в ведре
3л синей в круглой банке
2л желтой в плоской
237 = 11101101
Сначала делим на 2:
237 / 2 = 118(1)(так-как есть остаток)
118 / = 59(0)(так-как нет остатка)
59 / 2 = 29(1)
29 / 2 = 14(1)
14 / 2 = 7(0)
7 / 2 = 3(1)
3 / 2 = 1(1)
1 / 2 = 0(1)
А потом записываем с конца.
С остальными так-же.(но лучше воспользоваться стандарнным windows'ким калькулятором(вид->программист->и когда введёшь число выбрать Bin :))