Q:

Prove that $f$ is a first degree polynomial

Let a polynomial $f$ be in $\mathbb{Z}[x]$. Assume that for every $n \in \mathbb{N}$ $f(x)=n$ has at least one integer solution. Than prove that $$f(x) = \pm x + c$$ I really don't know to start. Thanks in advance!

A:

Let $f(x)=a_0+a_1x+...+a_kx^k$ where we shall assume that $a_k\ne0$ and $k>1$.
Let $p$ be a prime greater than $1+|a_1|+|a_2|+...|a_k|$ and suppose that $t$ is an integer solution of $f(x)=a_0+p$. 
Then $t(a_1+a_2t+ ...+a_kt^{k-1})=p$ and so $t$ is one of $-1,1,-p,p$.
If $t$ is $-1$ or $1$, then $|a_1|+|a_2|+...|a_k|\ge p$, a contradiction. 
So suppose that $t$ is $-p$ or $p$. Then $$|a_k|p^{k-1}\le (1+|a_1|+|a_2|+...|a_{k-1}|)p^{k-2}$$ and so $$p\le (1+|a_1|+|a_2|+...|a_{k-1}|),$$ another contradiction.
Therefore $k$ must be $1$ and, for $t$ is an integer solution of $f(x)=a_0+p$, we have to solve $a_1t=p$. Then $a_1$ is a factor of all possible $p$ and so $a_1$ is $1$ or $-1$, as required.

