"""simple docstring"""






import qiskit




def 						SCREAMING_SNAKE_CASE					(  __UpperCAmelCase  ,					__UpperCAmelCase       )							->   qiskit.result.counts.Counts:
				SCREAMING_SNAKE_CASE__		  =				qiskit.Aer.get_backend("aer_simulator"       )

				SCREAMING_SNAKE_CASE__		  =				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
				SCREAMING_SNAKE_CASE__		  =				qiskit.execute(__UpperCAmelCase  ,					__UpperCAmelCase  ,					shots=1_000       )

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


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





"""simple docstring"""






def 						SCREAMING_SNAKE_CASE					(  __UpperCAmelCase       )							->   int:

				if not isinstance(__UpperCAmelCase  ,					__UpperCAmelCase       ):
								raise ValueError("multiplicative_persistence() only accepts integral values"       )
				if num < 0:
								raise ValueError("multiplicative_persistence() does not accept negative values"       )

				SCREAMING_SNAKE_CASE__		  =				0
				SCREAMING_SNAKE_CASE__		  =				str(__UpperCAmelCase       )

				while len(__UpperCAmelCase       ) != 1:
								SCREAMING_SNAKE_CASE__		  =				[int(__UpperCAmelCase       ) for i in num_string]

								SCREAMING_SNAKE_CASE__		  =				1
								for i in range(0  ,					len(__UpperCAmelCase       )       ):
												total *= numbers[i]

								SCREAMING_SNAKE_CASE__		  =				str(__UpperCAmelCase       )

								steps += 1
				return steps




def 						SCREAMING_SNAKE_CASE					(  __UpperCAmelCase       )							->   int:

				if not isinstance(__UpperCAmelCase  ,					__UpperCAmelCase       ):
								raise ValueError("additive_persistence() only accepts integral values"       )
				if num < 0:
								raise ValueError("additive_persistence() does not accept negative values"       )

				SCREAMING_SNAKE_CASE__		  =				0
				SCREAMING_SNAKE_CASE__		  =				str(__UpperCAmelCase       )

				while len(__UpperCAmelCase       ) != 1:
								SCREAMING_SNAKE_CASE__		  =				[int(__UpperCAmelCase       ) for i in num_string]

								SCREAMING_SNAKE_CASE__		  =				0
								for i in range(0  ,					len(__UpperCAmelCase       )       ):
												total += numbers[i]

								SCREAMING_SNAKE_CASE__		  =				str(__UpperCAmelCase       )

								steps += 1
				return steps


if __name__ == "__main__":
						import doctest

						doctest.testmod()




