It seems there is an algorithm, implemented in Sage (for example). The following link is to a Sage worksheet with a small example. Please let me know if I've mis-interpreted the original question, but I believe this answers it.
Updated
Sorry about the link not working; I don't know what could be the issue. Here are the sage commands I found relating to your question.
G. = AbelianGroup(4, invfac=[3,5,9,45])
This creates the group $\mathbb{Z}/3 \mathbb{Z} \times \mathbb{Z}/5\mathbb{Z} \times \mathbb{Z}/9\mathbb{Z}\times \mathbb{Z}/45\mathbb{Z}$, with specified generators, $a, b, c, d$.
H = G.subgroup([a*b, c^3])
a*b in H
--returns true
a*b*c in H
--returns false.
Updated
I don't have the full details, but I know that sage uses the DHSW algorithm when computing SNF (reference: Dumas, Heckenbach, Saunders, Welker, “Computing simplicial homology based on efficient Smith normal form algorithms,” in “Algebra, geometry, and software systems” (2003), 177-206.) As I understand it, the time-complexity is polynomial.

