Let $M \in \mathbb{R}^{n \times n}$ and denote the set of Orthogonal matrices by \begin{equation} \mathcal{O}_{n} = \left\lbrace Q \in \mathbb{R}^{n \times n} \colon QQ^{T} = \mathbb{I}_{n} \right\rbrace . \end{equation}
What is an efficient way to find the projection of an arbitrary matrix $M \in \mathbb{R}^{n \times n}$ onto $\mathcal{O}_{n}$.
One approach I can find is to compute the Singular Value Decomposition of $M$, namely, \begin{equation} M = U \Sigma V^{T} . \end{equation} Then we have \begin{equation} Q = UV^{T} . \end{equation}
Is there any other approach besides this SVD?