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
****************************************************************/