



"""simple docstring"""


import math

import qiskit

def 			_lowerCAmelCase				(       lowercase_ = 1		,     lowercase_ = 1		,     lowercase_ = 1						):
						if (
						    isinstance(lowercase_		,     lowercase_						)
						    or isinstance(lowercase_		,     lowercase_						)
						    or isinstance(lowercase_		,     lowercase_						)
						):
												raise TypeError('inputs must be integers.'						)

						if (input_a < 0) or (input_a < 0) or (carry_in < 0):
												raise ValueError('inputs must be positive.'						)

						if (
						    (math.floor(lowercase_						) != input_a)
						    or (math.floor(lowercase_						) != input_a)
						    or (math.floor(lowercase_						) != carry_in)
						):
												raise ValueError('inputs must be exact integers.'						)

						if (input_a > 2) or (input_a > 2) or (carry_in > 2):
												raise ValueError('inputs must be less or equal to 2.'						)

						# build registers
						UpperCAmelCase					=			qiskit.QuantumRegister(4		,     'qr'						)
						UpperCAmelCase					=			qiskit.ClassicalRegister(2		,     'cr'						)
						# list the entries
						UpperCAmelCase					=			[input_a, input_a, carry_in]

						UpperCAmelCase					=			qiskit.QuantumCircuit(lowercase_		,     lowercase_						)

						for i in range(0		,     3						):
												if entry[i] == 2:
																		quantum_circuit.h(lowercase_						)  # for hadamard entries
												elif entry[i] == 1:
																		quantum_circuit.x(lowercase_						)  # for 1 entries
												elif entry[i] == 0:
																		quantum_circuit.i(lowercase_						)  # for 0 entries

    # build the circuit
						quantum_circuit.ccx(0		,     1		,     3						)  # ccx = toffoli gate
						quantum_circuit.cx(0		,     1						)
						quantum_circuit.ccx(1		,     2		,     3						)
						quantum_circuit.cx(1		,     2						)
						quantum_circuit.cx(0		,     1						)

						quantum_circuit.measure([2, 3]		,     lowercase_						)  # measure the last two qbits

						UpperCAmelCase					=			qiskit.Aer.get_backend('aer_simulator'						)
						UpperCAmelCase					=			qiskit.execute(lowercase_		,     lowercase_		,     shots=1000						)

						return job.result().get_counts(lowercase_						)


if __name__ == "__main__":
				print(f'''Total sum count for state is: {quantum_full_adder(1, 1, 1)}''')










"""simple docstring"""


from math import factorial, radians

def 			_lowerCAmelCase				(       lowercase_		,     lowercase_ = 18		,     lowercase_ = 10						):
						UpperCAmelCase					=			angle_in_degrees - ((angle_in_degrees // 3_6_0.0) * 3_6_0.0)

						# Converting from degrees to radians
						UpperCAmelCase					=			radians(lowercase_						)

						UpperCAmelCase					=			angle_in_radians
						UpperCAmelCase					=			3
						UpperCAmelCase					=			-1

						for _ in range(lowercase_						):
												result += (b * (angle_in_radians**a)) / factorial(lowercase_						)

												UpperCAmelCase					=			-b  # One positive term and the next will be negative and so on...
												a += 2  # Increased by 2 for every term.

						return round(lowercase_		,     lowercase_						)


if __name__ == "__main__":
				__import__("""doctest""").testmod()





