var n,i:longint; flag:boolean;
function ok(x:longint):boolean;{判别x是否为质数的函数}
var i:longint;
begin
 i:=2;
 while (x mod i>0) and (i<=sqrt(x)) do inc(i);
 if i>sqrt(x) then exit(true) else exit(false);
end;
 

begin
 readln(n);
 i:=1; flag:=true;
 while flag and (i<=n/2) do
  begin
   if n mod i=0 then
    if ok(n div i) then
     begin  writeln(n div i); flag:=false; end;
   inc(i);
  end;
end.

/**************************************************************
	Problem: 2310
	User: admin
	Language: Pascal
	Result: Wrong Answer
****************************************************************/