constexpr bool is_prime(std::size_t n) { using detail::find_factor; using detail::ceilsqrt; return n > 1 && (n == 2 || (n % 2 == 1 && (n == 3 || !find_factor(n, 1, (ceilsqrt(n) + 1) / 2)))); }