$c$ consiste en todas las potencias primarias de $(m,n)$ que tienen el mismo exponente que en $m$ ...
Sí, la factorización costosa no es necesaria. Podemos calcular $\,c\,$ de forma eficiente mediante gcds iterados que se cancelan de $\,m\,$ todos los primos que se producen a mayor potencia que en $\,(m,n).\,$ Estos son exactamente los primos en $\,m' = m/(m,n)\,$ y podemos cancelarlas desde $m$ cancelando repetidamente cualquier gcd que tenga con $\,m',\,$ dando lugar a la solución $\ c = {\rm gdc}(m, m'),\ \ d = (m,n)/c,\ $ donde
$\begin{align}&{\rm gdc}(x,y)\ :=\qquad \text{// greatest divisor of $\,x\,$ that is coprime to $\,y$}\\ &\quad {\rm if}\ \, \gcd(x,y) = 1\ \ {\rm then}\ \ x\\ &\quad {\rm else}\ \, {\rm gdc}(x/{\rm gcd}(x,y),\,y) \end{align}$