I can require input be
f(x,n,[m]) and then it's modifiable, but this doesn't apply for languages like C.
I consider this somewhat borderline, but ended up slightly on the side of allowing it.
The challenge you linked requires "output
n" (approximately). The answer you proposed "outputs
x as the return value of the function, outputs
n as the value remaining in
m after the function runs". This is an entirely normal and permitted way to output. The internal facts of your program not actually modifying
m are irrelevant to whether the answer is valid. I think the internal facts of your language not even allowing you to modify
m are also irrelevant; as long as the user treats
m as an output parameter (i.e. not changing its value somewhere else in the middle of running the function) then the answer successfully ensures that
m contains the correct value after running.