



import math

import numpy as np
import qiskit
from qiskit import Aer, ClassicalRegister, QuantumCircuit, QuantumRegister, execute







def snake_case__  (			__SCREAMING_SNAKE_CASE = 3 )		->							qiskit.result.counts.Counts:
			if isinstance(__SCREAMING_SNAKE_CASE			,     __SCREAMING_SNAKE_CASE ):
						raise TypeError("number of qubits must be a integer." )
			if number_of_qubits <= 0:
						raise ValueError("number of qubits must be > 0." )
			if math.floor(__SCREAMING_SNAKE_CASE ) != number_of_qubits:
						raise ValueError("number of qubits must be exact integer." )
			if number_of_qubits > 10:
						raise ValueError("number of qubits too large to simulate(>10)." )

			UpperCAmelCase_						=				QuantumRegister(__SCREAMING_SNAKE_CASE			,     "qr" )
			UpperCAmelCase_						=				ClassicalRegister(__SCREAMING_SNAKE_CASE			,     "cr" )

			UpperCAmelCase_						=				QuantumCircuit(__SCREAMING_SNAKE_CASE			,     __SCREAMING_SNAKE_CASE )

			UpperCAmelCase_						=				number_of_qubits

			for i in range(__SCREAMING_SNAKE_CASE ):
						quantum_circuit.h(number_of_qubits - i - 1 )
						counter -= 1
						for j in range(__SCREAMING_SNAKE_CASE ):
									quantum_circuit.cp(np.pi / 2 ** (counter - j)			,     __SCREAMING_SNAKE_CASE			,     __SCREAMING_SNAKE_CASE )

			for k in range(number_of_qubits // 2 ):
						quantum_circuit.swap(__SCREAMING_SNAKE_CASE			,     number_of_qubits - k - 1 )

			# measure all the qubits
			quantum_circuit.measure(__SCREAMING_SNAKE_CASE			,     __SCREAMING_SNAKE_CASE )
			# simulate with 10000 shots
			UpperCAmelCase_						=				Aer.get_backend("qasm_simulator" )
			UpperCAmelCase_						=				execute(__SCREAMING_SNAKE_CASE			,     __SCREAMING_SNAKE_CASE			,     shots=1_0000 )

			return job.result().get_counts(__SCREAMING_SNAKE_CASE )


if __name__ == "__main__":
			print(
			    f'''Total count for quantum fourier transform state is: \
    {quantum_fourier_transform(3)}'''
			)






def snake_case__  (			__SCREAMING_SNAKE_CASE )		->							int:
		UpperCAmelCase_						=				1
		for i in range(1			,     num + 1 ):
				fact *= i
		return fact







def snake_case__  (			__SCREAMING_SNAKE_CASE )		->							int:
		UpperCAmelCase_						=				0
		while number > 0:
				UpperCAmelCase_						=				number % 10
				sum_of_digits += last_digit
				UpperCAmelCase_						=				number // 10  # Removing the last_digit from the given number
		return sum_of_digits







def snake_case__  (			__SCREAMING_SNAKE_CASE = 100 )		->							int:
		UpperCAmelCase_						=				factorial(__SCREAMING_SNAKE_CASE )
		UpperCAmelCase_						=				split_and_add(__SCREAMING_SNAKE_CASE )
		return result


if __name__ == "__main__":
			print(solution(int(input("Enter the Number: ").strip())))

