Rating: 5.0

Since each bit (except some low-order bits) is only set in one of p or q, we can determine the top ~1000 bits of p by starting with `p = 0b111111...` and `q = 0b0` and "moving" each bit into `q` if `p * q < n`. Brute force the 20 low-order bits to factor `n`.

Original writeup (https://www.nevi.dev/2022/03/20/writeup-zer0pts-ctf-2022/#anti-fermat-crypto-warmup).