Given first order language, $L = <0, S, +, \cdot, = >$, $0$ is the number zero, $S$ is the successor function, and a model $M$ with the domain $\mathbb{N}$, I need to prove that the prime numbers set can be defined in $M$ using $L$
I came up with the following formula: $$\varphi(x)=\exists_U(\neg U(S(0))\wedge\forall_x[U(x)\leftrightarrow\forall_y\forall_z((y\cdot z = x)\rightarrow([(y = x) \wedge (z= S(0))] \vee [(y=S(0)) \wedge (z = x)]))]) \wedge U(x)$$ (U(n) means $x\in U$)
The formula says there is a subset $U$, $1\notin U$, such that for every $x$, $x\in U$, if and only if the only numbers whose product equals $x$ are $x$ and $1$, and the last part says that the free variable $x$ is an element of the subset $U$ (and thus a prime number)
But this formula seems overcomplicated, is there a simpler, clearer formula to define prime numbers?