I thought someone would already have answered this. For people who like algebra, it's one of those fun things to derive in quantum mechanics.
Let me list some facts about these operators
- ##S^{+} = S_x + i S_y##
- ##S^{-} = S_x - i S_y##
- ##S^2 = S_x^2 + S_y^2 + S_z^2##
- ##S_x S_y - S_y S_x = i S_z##
- ##S_z S^{+} = S^{+} (S_z + 1)##
- ##S_z S^{-} = S^{-} (S_z - 1)##
- ##S^{-} S^{+} = S^2 - S_z(S_z + 1)##
- ##(S^{+})^\dagger = S^{-}##
(The last 4 are provable from the first 4).
So if we let ##|m\rangle## be the state with ##S_z |m \rangle = m | m \rangle##,
then ##S_z S^- |m\rangle = S^- (S_z - 1) |m\rangle = S^- (m - 1) |m\rangle = (m-1) S^- |m\rangle##. So ##S^-|m\rangle## is an eigenstate of ##S_z## with eigenvalue ##m-1##. That means (assuming nondegeneracy of eigenvalues---I'm going to skip the argument for why this is the case, because I'm not sure why) that ##S^- |m\rangle## must be a multiple of ##|m-1\rangle##. So let's let ##\alpha_m## be the multiplier:
##S^- |m\rangle = \alpha_m |m-1\rangle##
Analogously, we can show that ##S^+ |m\rangle## has to be an eigenstate of ##S_z## with eigenvalue ##m+1##. So
##S^+ |m\rangle = \beta_m |m+1\rangle##
where ##\beta_m## is some unknown multiplier. We can relate ##\alpha_m## and ##\beta_m## by considering
##\langle m| S^- S^+ |m \rangle##
By our assumptions about ##S^+## and ##S^{-}##, we get:
##\langle m| S^- S^+ |m \rangle = \langle m| (S^+ \beta_m |m+1\rangle) = \langle m |\alpha_{m+1} \beta_m |m\rangle = \alpha_{m+1} \beta_m##. But we also know that ##\langle m| S^- S^+ |m \rangle = (S^+ |m\rangle)^\dagger (S^+ |m\rangle) = \langle m | \beta_m^* \beta_m |m \rangle##. So this proves that
##\beta_m^* = \alpha_{m+1}##
Now on the one hand:
##S^- S^+ |m\rangle = S^- \beta_m |m+1\rangle = \alpha_{m+1} \beta_m |m\rangle = |\beta_m|^2 |m \rangle##
On the other hand, by equation 7 above,
##S^- S^+ |m\rangle = (S^2 - S_z(S_z+1)) |m\rangle = (S^2 - m(m+1)) |m\rangle##
So we conclude that ##\beta_m = \sqrt{S^2 - m(m+1)}##.
But what are the eigenvalues of ##S^2##? Well, since ##S^2## must be greater than or equal to ##S_z^2##, we know that we can't keep raising the value of ##S_z## forever. But since ##S^+ |m\rangle = \beta_m |m+1\rangle##, the only way to prevent raising ##m## indefinitely is if for some maximal value of ##m##,
##S^+ |m_{\text{max}}\rangle = 0##
That implies that ##\beta_{m_{\text{max}}} = 0##.
So since we know an expression for ##\beta_m##,
##\sqrt{S^2 - m_{\text{max}}(m_{\text{max}}+1)} = 0##
That implies that ##S^2 = m_{\text{max}}(m_{\text{max}}+1)##
Rewriting ##m_{\text{max}} \equiv s## gives:
##S^2 =s (s+1)##
and ##\beta_m = \sqrt{s(s+1) - m(m+1)}##