var
 i,o:text;
 n,k,res:integer;
 b:boolean;
begin
 res:=1;
 b:=false;
 assign(i,'fact.in');
 assign(o,'fact.out');
 reset(i);
 rewrite(o);
 read(i,n);
 close(i);
 for k:=1 to n do
  begin
   res:=res*k;
   if res=n then
    begin
     b:=true;
     write(o,'YES');
     break;
    end;
  end;
 if b=false then
  write(o,'NO');
 close(o);
end.
