First of all, we have f(0)=f(0)3 by setting x=y=z=0 in the condition.
Therefore, f(0)=−1,0 or 1. Now, if f(0)=0, we'll get
f(xf(y))=0,∀x,y∈Z
by setting z=0. However, this would imply f(x)=0,∀x∈Z, which is impossible. So it remains to consider the case that f(0)=−1 or f(0)=1.
If there is non-zero integer a such that f(a)=1. Then one can set y=a,z=0 to get
f(x+a)=f(x),∀x∈Z
which is again impossible because periodic functions defined on integers aren't surjective.
f(b3−3b)=f(b)3=−1
Next, take x=b3−3b,y=b,z=0, we have (Notice b is non-zero)
f(4b−b3)=1⇔4b−b3=0⇔b=2,−2
Case 1.1: f(−2)=−1.
In this case we know
f(x)+f(−2−x)=0,∀x∈Z(1)
Choose a∈Z satisfying f(a)=2. Set y=a,z=0:
f(2x+a)=2f(x),∀x∈Z(2)
In particular, f(a−4)=2(−2)=−2. Use Eq. (1), we get f(2−a)=2. This means
f(2x+(2−a))=2f(x)=f(2x+a).
Suppose that 2−a=a. Then f could only take finite values on 2Z+a. But Eq. (2) then gives that f could only take finite values on integers, which contradicts to the surjectivity of f.
Thus, a must be 1 and Eq. (2) becomes
f(2x+1)=2f(x),∀x∈Z(3)
To show f(x)=x+1,∀x∈N (N is the set of positive integers), we'll apply mathematical induction. Note that
f(r−1)=r and f(s−1)=s then f(rs−1)=rs
by setting x=r,y=s,z=0. Consequently, it remains to check that f(p−1)=p when p is a prime. We have established the based case. Suppose it's true that f(m−1)=m for all positive integer m<p.
Choose c such that f(c)=p. If c=−1(modp), take d∈Z so that
0≤pd+c<p−1. Set x=d,y=c,z=0, we get
pd+c+1=f(pd+c)=pf(d).
This gives pd+c+1 is divisible by p, which is absurd! Moreover, if c+1 is a multiple of 2p, then c is odd. But, it's impossible by Eq. (3).
As the result, c≡p−1(mod2p). Now,
f(2px+2c+1)=2f(px+c)=2pf(x)=pf(2x+1)=f(2px+p+c)
If 2c+1=p+c, f can take finite values on 2pZ+(2p−1). But 2pf(x)=f(2px+p+c) implies f can take finite values, a contradiction. We conclude that 2c+1=p+c. In other words, c=p−1, as desired.
Hence, by mathematical induction, we get f(x)=x+1,∀x∈N.
Finally,
f(x)=x+1,∀x∈Z
according to equation (1).
Still, choose a to be the number such that f(a)=2. This time, we have
f(a+4)=2f(2)=−2→f(−2−a)=2.
The same argument gives us −2−a=a, i.e. a=−1. Again, the base case is checked. Suppose f(1−m)=m is true for all positive integer m<p where p is a prime. Choose c∈Z satisfying f(c)=p.
Then if c=1(modp), take d∈Z such that 1−p<pd+c≤0. Set x=d,y=c,z=0:
1−(pd+c)=f(pd+c)=pf(d).
This is also impossible. So c≡1(modp). Since c is even, it follows that c≡p+1(mod2p).
f(2px+2c−1)=2f(px+c)=2pf(x)=pf(2x−1)=f(2px−p+c).
If c=1−p, then f takes finite values on 2pZ+1 and also on Z, a contradiction. Therefore, c=1−p. By mathematical induction,
f(1−x)=x,∀x∈N.
Use f(x)+f(2−x)=0, we can say
f(1−x)=x,∀x∈Z→f(x)=1−x,∀x∈Z.
Choose e∈Z such that f(e)=1 and set y=e,z=0 to get
f(x−e)=−f(x)=0→f(x−2e)=−f(x−e)=f(x).
Because e is non-zero, f is periodic, which is impossible.
It's easy to verify that f(x)=1+x,∀x∈Z and f(x)=1−x,∀x∈Z satisfy the original conditions. In conclusion, they are our answers.