#
#  Import modules
#


from qiskit import QuantumCircuit
from qiskit.primitives import StatevectorSampler
from qiskit.visualization import plot_histogram
import matplotlib.pyplot as plt

#
#  Define quantum circuit
#

qc = QuantumCircuit(3,2)              # starts as |000>   q0 and q1 are the two quantum bits we want to add. q2 is sum, q3 is carry.
qc.x(0)                               # not q0    |001>   
qc.x(1)                               # not q1    |011>
qc.ccx(0, 1, 2)                       # flip q2 based on q0 or q1 (Toffoli gate or multiple cnot)
qc.cx(0,1)                            # not q1 = Sum

# 1+1 = 10   thus 10 100% of the times.

qc.measure(1, 0)   # sum
qc.measure(2, 1)   # carry


#
# Visualize circuit and resultss
#

qc.draw("mpl")

sampler = StatevectorSampler()
result = sampler.run([qc], shots=1024).result()
counts = result[0].data.c.get_counts()

print(counts)
plot_histogram(counts)
plt.show()
