Strengths and Weaknesses of Quantum Computing