Quantum computers and their applications