Eventually periodic orbit?

I am doing a self study on dynamical systems.

I faced the following exercise in this book:

Prove that any point on $f:[0,1]\to [0,1],\ f(x)=3x \mod 1$ is eventually periodic iff its a rational number.

I find the problem really hard comparing to the simple material that the textbook covered so far and consider my answer sophisticated for the question. So here is my solution:

Suppose $a=\frac{m}{n}$ is the assumed point. Eventually we have to prove that there exist $k,k'$ so that $3^k m \overset{n}{\equiv}3^{k'}m$ which then has an answer using Euler's totient function wether $3|n$ or not. The "only if" case is even easier because there should exist integer $n$ such that $n=3^{k-k'}a$ which makes $a$ rational. Does anybody know any simpler answer or a hint for the simpler answer?

Multiplying by $3$ can only make the denominator of a rational number smaller, so if you start with a fraction $x\in[0,1]$, the iterates $f(x)$, $f(f(x))$, etc. are restricted to a finite set of numerators and denominators, hence must eventually return to an earlier value, at which point the process becomes periodic.