Suppose we a given a set $S$ of residues $a_i\pmod{m_i}$, $i=1,2,\dots,k$. I wonder how hard it is to recognize whether they form a covering system, that is, whether for every integer $n$ there exists (at least one) $i$ such that $n\equiv a_i\pmod{m_i}$.
I'm aware of two algorithms:
- Compute $M = \mathrm{lcm}(m_1,\dots,m_k)$, and for each nonnegative integer $n<M$ (ie. residue modulo $M$) check that $n\equiv a_i\pmod{m_i}$ for some $i$. The set $S$ is a covering system iff each residue modulo $M$ got covered.
- Using the inclusion-exclusion principle, it's possible to compute the number of residues modulo $M$ that are covered by the residues from $S$. Then $S$ is a covering system iff that number is $M$.
The issue here is that the former algorithm takes time proportional to $M$, while the latter is proportional to $2^k$ in the worst case. Large $M$ and $2^k$ make them impractical.
PS. There is a necessary conditions that $\sum_{i=1}^k \frac1{m_i}\geq 1$, but let's assume it is fulfilled. Also, we may assume that $S$ is reduced, that is, neigher residue class is a subclass of any other.