# Mathematica, 53 bytes (For[i=n=#,n>1,--n,If[n∣i,i+=n(2Mod[i/n,2]-1)]];i)& I decided to golf my reference implementation. The `∣` is the Unicode symbol for "divides", and counts for 3 bytes. Otherwise, this uses the same algorithm as everyone else.