Richard Feynman was the first to propose the idea of applying the laws of quantum physics to perform computational tasks in 1982. David Deutsch then generalised the notion of a Turing machine to the quantum realm, in-troducing the notion of a universal quantum computer. In this system, the bit (the classical unit of information) is replaced by the quantum bit or qubit. The quantum superposition principle allows the qubit to be in any superposition state a 0? + b 1?, instead of being in just one of the two states 0 or 1 as a classical bit. This "quantum parallelism" is the key property of a quantum computer, which provides access to an exponentially larger set of states to process information. It makes it possible to simulate quantum systems that classical computers cannot afford due to their size. It could also solve new tasks, as creating true random numbers, and improve others such as the database searching, and prime number factorisation.