import qiskit




def    lowerCAmelCase_ (     __A,  __A							)     ->				qiskit.result.counts.Counts:







      '''simple docstring'''


      UpperCAmelCase__								=  qiskit.Aer.get_backend("aer_simulator"							)

      UpperCAmelCase__								=  qiskit.QuantumCircuit(4,  2							)
      # encode inputs in qubits 0 and 1
      if bita == 1:
            qc_ha.x(0							)
      if bita == 1:
            qc_ha.x(1							)
      qc_ha.barrier()

      # use cnots to write XOR of the inputs on qubit2
      qc_ha.cx(0,  2							)
      qc_ha.cx(1,  2							)

      # use ccx / toffoli gate to write AND of the inputs on qubit3
      qc_ha.ccx(0,  1,  3							)
      qc_ha.barrier()

      # extract outputs
      qc_ha.measure(2,  0							)  # extract XOR value
      qc_ha.measure(3,  1							)  # extract AND value

      # Execute the circuit on the qasm simulator
      UpperCAmelCase__								=  qiskit.execute(__A,  __A,  shots=1_000							)

      # Return the histogram data of the results of the experiment
      return job.result().get_counts(__A							)


if __name__ == "__main__":
      UpperCamelCase__											=					half_adder(1, 1)
      print(f'''Half Adder Output Qubit Counts: {counts}''')




import math




def    lowerCAmelCase_ (     __A							)     ->				bool:







      '''simple docstring'''


      return math.sqrt(__A							) * math.sqrt(__A							) == num




def    lowerCAmelCase_ (     __A							)     ->				bool:







      '''simple docstring'''


      UpperCAmelCase__								=  0
      UpperCAmelCase__								=  n
      while left <= right:
            UpperCAmelCase__								=  (left + right) // 2
            if mid**2 == n:
                  return True
            elif mid**2 > n:
                  UpperCAmelCase__								=  mid - 1
            else:
                  UpperCAmelCase__								=  mid + 1
      return False


if __name__ == "__main__":
      import doctest

      doctest.testmod()



