(i)
f(f(0))=f(0+f(0))=f(f(0))+f(0)⇒f(0)=0⇒f(f(m))=f(m)⇒f(m+f(n))=f(m)+f(n),f(m+f(n))=f(f(m))+f(n)⇔f(m+f(n))=f(m)+f(n),f(0)=0.
(ii) f(2f(n))=2f(n). By induction, we get f(kf(n))=kf(n).
(iii) From f(f(m))=f(m), we know that the function f has fixed points, and all the fixed points are the values that f(m) can take.
(iv) If f(n)≡0, it clearly satisfies the requirement. Otherwise, let a⩾1 be the smallest fixed point of f(m) (i.e., the smallest positive integer value that f(m) can take), i.e., f(a)=a,f(r)=r,1⩽r1, let n=ka+r,0⩽r<a, then (here we use the division with remainder from Chapter 1, §3)
f(n)=f(r+ka)=f(r+kf(a))=f(r+f(kf(a)))=f(r)+f(kf(a))=f(r)+ka
n is a fixed point of f ⟺r=f(r),0⩽r<a⟺r=0, i.e., n=ka. Since f(n) is a fixed point of f, we have f(n)=g(n)a, where g(ka)=k. Therefore,
f(n)=ka+f(r)=ka+g(r)a=([n/a]+g(r))a,
where g(0)=0,g(r)(1⩽r<a) can be chosen arbitrarily.