Just imagine I have two primes, $p$ and $q$, each $1400$ bits long.
Each has the middle $1000$ bits set to $0$. Thus the top $200$ and bottom $200$ bits are meaningful in each number.
Take $s=pq$.
Would it be trivial given $s$, to determine what $p$ and $q$ were?
Let $m=200$, $n=1200$. You have $$\begin{align} p &= 2^n a + b & 0 < a &< 2^m & 0 < b &< 2^m \\ q &= 2^n c + d & 0 < c &< 2^m & 0 < d &< 2^m \end{align}$$ Therefore $$s = pq = 2^{2n}ac + 2^n(ad+bc) + bd$$ where $$\begin{align} 0 < ac &< 2^{2m} & 0 < ad+bc &< 2^{2m+1} & 0 < bd &< 2^{2m} \end{align}$$ Since $2m+1\leq n$, you can read off $ac$ by discarding the lowest $2n$ bits of $s$. And $bd$ by discarding all but the lowest $2m$ bits of $s$. And $ad+bc$ by reading bits $n\ldots(n+2m)$ of $s$.
Now you can compute $$\begin{align} |ad-bc| &= \sqrt{(ad+bc)^2 - 4(ac)(bd)} \\ \{ad, bc\} &= \frac{(ad+bc) \pm |ad-bc|}{2} \end{align}$$ Now we have $(ac,ad,bc,bd)$, except that we do not know which of $\{ad,bc\}$ is which. Let's just make an arbitrary choice there.
Since $p$ is prime, $a$ and $b$ must be coprime. Similarly, since $q$ is prime, $c$ and $d$ must be coprime. Therefore $$\begin{align} a &= a\gcd(c,d) = \gcd(ac,ad) & b &= b\gcd(c,d) = \gcd(bc,bd) \\ c &= \gcd(a,b)\,c = \gcd(ac,bc) & d &= \gcd(a,b)\,d = \gcd(ad,bd) \end{align}$$ from which you can recover $p$ and $q$.
If $ad$ and $bc$ are swapped (as allowed by the $\pm$), then the subsequent determination of $a,b,c,d$ simply swaps $a$ with $c$ and $b$ with $d$ and therefore swaps $p$ and $q$, which is as it should be.
Once you have determined $a$, you can as well use $$\begin{align} c &= \frac{ac}{a}; & b &= \frac{bc}{c}; & d &= \frac{bd}{b} = \frac{ad}{a} \end{align}$$ This ensures $pq=s$ even if you do not know whether $p$ and $q$ are prime.
This method works as long as we know that more than the middle third of the factor bitstrings are zeroed.