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.
// PascalABC.NET 3.0, сборка 1088
function InitA(n:integer):array of integer;
begin
Result:=ArrRandom(n,-31,45)
end;
procedure GetA(var a:array of integer);
begin
a:=InitA(ReadInteger('Количество элементов в массиве А: '));
end;
procedure PutM(c:char; a:array of integer);
begin
Writeln('*** Массив '+c+'[',a.Length,'] ***',#13#10,a);
end;
function FormB(a:array of integer):array of integer;
begin
Result:=Range(0,a.Length-1,2).Select(x->a[x]).ToArray
end;
function MinEl(a:array of integer):integer;
begin
Result:=a.Min
end;
begin
var mA:array of integer;
GetA(mA); PutM('A',mA);
var mB:=FormB(mA); PutM('B',mB);
Writeln('Минимальный элемент в массиве В равен ',MinEl(mB))
end.
<em><u>Тестовое решение:</u></em>
Количество элементов в массиве А: 15
*** Массив A[15] ***
[-22,0,-9,17,14,3,38,-18,-28,-17,28,13,1,1,26]
*** Массив B[8] ***
[-22,-9,14,38,-28,28,1,26]
Минимальный элемент в массиве В равен -28