Status: OUT
Passing `num=0` to `is_perfect_square` returns `False` (the loop body never executes because `lo=1 > hi=0`), even though 0 is technically a perfect square — a known edge-case gap.
Source: entries/2026/06/06/valid-perfect-square-solution.md