



class 	lowerCamelCase__	:



 """simple docstring"""

 def __init__(    self					:					List[Any]			,						__lowerCAmelCase					:					list[int]      )   ->	None:
    _A      =       len(__lowerCAmelCase      )
    _A      =       [0] * len_array

    if len_array > 0:
       _A      =       array[0]

    for i in range(1			,						__lowerCAmelCase      ):
       _A      =       self.prefix_sum[i - 1] + array[i]

 def     snake_case_      (    self					:					List[Any]			,						__lowerCAmelCase					:					int			,						__lowerCAmelCase					:					int      )   ->	int:
    if start == 0:
       return self.prefix_sum[end]

    return self.prefix_sum[end] - self.prefix_sum[start - 1]

 def     snake_case_      (    self					:					List[str]			,						__lowerCAmelCase					:					int      )   ->	bool:
    _A      =       {0}
    for sum_item in self.prefix_sum:
       if sum_item - target_sum in sums:
          return True

       sums.add(__lowerCAmelCase      )

    return False


if __name__ == "__main__":
   import doctest

   doctest.testmod()








import math

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

def 	SCREAMING_SNAKE_CASE_							(	_snake_case	:int = 3				)  ->     qiskit.result.counts.Counts:
   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=10_000				)

   return job.result().get_counts(_snake_case				)


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



