swap number without tmp