Inverse Outer Product Let $C$ be an $n \times n$ matrix with entries $c_{i,j}$. Suppose no row or column of $C$ consists only of zeroes.
How can we compute real $n \times 1$ column vectors $A$, $B$ such that
$$
AB^T=C
$$
i.e., 
$$
a_i b_j = c_{i,j} \quad \forall i,j
$$
If row $i_0$ has no zero entries (i.e., $c_{i_0, j} \neq 0$ for all $j$), then $b_j = c_{i_0, j}$ and $a_{i} = c_{i,j}/b_j$ does the trick.
Something similar works if column $j_0$ has no zero entries.
How to do it otherwise? Are additional conditions needed?
 A: The easiest way, if you are allowed to use a linear algebra package, is to just do an SVD:
$C = U S V^T$.
If you do "econo-mode" SVD, then $S$ will be an $r \times r$ diagonal matrix, and if $r > 1$ then you can't possibly accomplish that task. If $r = 1$, then $A = S^{1/2}V$, $B = S^{1/2}V$ are both vectors, and you're done.
If you don't get to use computational tools, then you can start out by just eyeing the matrix and see if it looks "rank-one-y". Basically, it should be like 
$C = \left[\begin{matrix}
a_1b_1 & a_1b_2 & ... & a_1b_n\\
a_2b_1 & a_2b_2 & ... & a_2b_n\\
.\\
.\\
.\\
a_nb_1 & a_nb_2 & ... & a_nb_n\\
\end{matrix}\right]$
You can usually tell right away whether this $C$ will work or not by visual inspection.
Note that as of now, for any correct choice of $A$ and $B$, the choice $\gamma A, \gamma^{-1} B$ is also valid, for any nonzero $\gamma$, so you do need a condition on that, but we can also just characterize this as a function of $\gamma$. (the svd approach will pick something where $\|A\|_2 = \|B\|_2$.
Since no complete row is 0, then you can start by picking 1 nonzero row $i$, with some $C_{ij} \neq 0$, and  compute $b_j = C_{ij}, b_k = C_{ik} / C_{ij}$ for $k \neq j$. 
Now pick any nonzero column $\hat i$, where $C_{\hat i\hat j} \neq 0$ for some $\hat j$, and compute $\gamma = b_{\hat i}$,  $a_{\hat i} = C_{\hat i\hat j}/\gamma, a_k = C_{k\hat j} / (\gamma C_{\hat i\hat j})$ for $k \neq \hat i$. 
