






import math

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






def      _snake_case     (__lowercase = 3):
   if isinstance(__lowercase     ,   __lowercase):
      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(__lowercase) != 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(__lowercase     ,   'qr')
   UpperCamelCase_						=  ClassicalRegister(__lowercase     ,   'cr')

   UpperCamelCase_						=  QuantumCircuit(__lowercase     ,   __lowercase)

   UpperCamelCase_						=  number_of_qubits

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

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

   # measure all the qubits
   quantum_circuit.measure(__lowercase     ,   __lowercase)
   # simulate with 10000 shots
   UpperCamelCase_						=  Aer.get_backend('qasm_simulator')
   UpperCamelCase_						=  execute(__lowercase     ,   __lowercase     ,   shots=10000)

   return job.result().get_counts(__lowercase)


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













import math
from datetime import datetime, timedelta






def      _snake_case     (__lowercase):
   UpperCamelCase_						=  year % 19
   UpperCamelCase_						=  year % 4
   UpperCamelCase_						=  year % 7
   UpperCamelCase_						=  math.floor(year / 100)
   UpperCamelCase_						=  math.floor((13 + 8 * leap_day_inhibits) / 25)
   UpperCamelCase_						=  leap_day_inhibits / 4
   UpperCamelCase_						=  (
       15 - lunar_orbit_correction + leap_day_inhibits - leap_day_reinstall_number
   ) % 30
   UpperCamelCase_						=  (4 + leap_day_inhibits - leap_day_reinstall_number) % 7

   # days to be added to March 21
   UpperCamelCase_						=  (19 * metonic_cycle + secular_moon_shift) % 30

   # PHM -> Paschal Full Moon
   UpperCamelCase_						=  (
       2 * julian_leap_year
       + 4 * non_leap_year
       + 6 * days_to_add
       + century_starting_point
   ) % 7

   if days_to_add == 29 and days_from_phm_to_sunday == 6:
      return datetime(__lowercase     ,   4     ,   19)
   elif days_to_add == 28 and days_from_phm_to_sunday == 6:
      return datetime(__lowercase     ,   4     ,   18)
   else:
      return datetime(__lowercase     ,   3     ,   22) + timedelta(
          days=int(days_to_add + days_from_phm_to_sunday))


if __name__ == "__main__":
 for year in (1_9_9_4, 2_0_0_0, 2_0_1_0, 2_0_2_1, 2_0_2_3):
  snake_case__   :						Dict													=   """will be""" if year > datetime.now().year else """was"""
  print(f'Easter in {year} {tense} {gauss_easter(year)}')





