JavaScript, 103
-

This implementation is based on primo's comprehensive description of the algorithm he used.

    for(x=prompt(e=l=1),g=1e5;--g;y=x-1,y/=x>1?x:1,l=y/g+(y<0?-y:y)*l)
      e=1+e/g*x;
    alert([e,(x>0?l:"ERROR")]);