GML, 76 bytes
n=argument0;i=n;while~-1{n+=(n mod i<1)*i*(n/i mod 2*2-1)i--}show_message(n)
#[GML][1] - 76 bytes n=argument0;i=n;while~-1{n+=(n mod i<1)i(n/i mod 2*2-1)i--}show_message(n) [1]: http://en.wikipedia.org/wiki/GameMaker:_Studio#ScriptingInformation about GML