Our approach is similar to the one of Koiliaris and Xu [1]}. We breifly describe their approach.
Recall \(_n\)  is the set of integers modulo \(n\) . We further define \(_{n,d} ={x \mid \gcd (x,n)=d, x\in _n}\) , and \(^*_n = _{n,1}\) . Let \(\mathcal {S}_\ell (X)\)  to be the set of segments of length \(\ell \)  and slope in \(X\) .
Their main idea is to convert the covering problem over the semigroup \((_n,\cdot )\)  to covering problems over the group \((^*_{n/d},\cdot )\)  for all \(d\in n\) .
Since \(_{n,d}\)  forms a partition of \(_n\) , one can reason about covering them individually. That is, covering \(_{n,d}\)  by \(\mathcal {S}_\ell (_{n,d})\) .
This is equivalent to cover \(^*_{n/d}\)  with \(\mathcal {S}_\ell (^*_{n/d})\) , and then lift to a cover in \(_{n,d}\)  by multiply everything by \(d\) . Hence, now we only have to work with covering problem over \((^*_{n/d},\cdot )\)  for all \(d\) , all of which are groups. The covering results for groups can be readily applied [2]}. Once we find the covering for each individual \((^*_{n/d},\cdot )\) , we take their union, and obtain a \(\ell \) -covering.
