




"""simple docstring"""

import math

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






def 		_snake_case	(   _snake_case				:   int = 3				)       ->   qiskit.result.counts.Counts:






      '''simple docstring'''


      if isinstance(_snake_case							,    _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(_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).'				)

      _A     =  QuantumRegister(_snake_case							,    'qr'				)
      _A     =  ClassicalRegister(_snake_case							,    'cr'				)

      _A     =  QuantumCircuit(_snake_case							,    _snake_case				)

      _A     =  number_of_qubits

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

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

      # measure all the qubits
      quantum_circuit.measure(_snake_case							,    _snake_case				)
      # simulate with 10000 shots
      _A     =  Aer.get_backend('qasm_simulator'				)
      _A     =  execute(_snake_case							,    _snake_case							,    shots=1_00_00				)

      return job.result().get_counts(_snake_case				)


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







"""simple docstring"""

def 		_snake_case	(   _snake_case				:   str				)       ->   str:






      '''simple docstring'''


      return " ".join(
          ''.join(word[::-1]				) if len(_snake_case				) > 4 else word for word in sentence.split()				)


if __name__ == "__main__":
       import doctest

       doctest.testmod()
       print(reverse_long_words('''Hey wollef sroirraw'''))

