


"""simple docstring"""
def 				_snake_case      (   __snake_case							:      float						, __snake_case							:      float						, __snake_case							:      int   ):




   """simple docstring"""







   if principal <= 0:
      raise Exception("""Principal borrowed must be > 0"""   )
   if rate_per_annum < 0:
      raise Exception("""Rate of interest must be >= 0"""   )
   if years_to_repay <= 0 or not isinstance(__snake_case						, __snake_case   ):
      raise Exception("""Years to repay must be an integer > 0"""   )

   # Yearly rate is divided by 12 to get monthly rate
   _lowerCamelCase	:					Tuple   =		rate_per_annum / 12

   # Years to repay is multiplied by 12 to get number of payments as payment is monthly
   _lowerCamelCase	:					str   =		years_to_repay * 12

   return (
       principal
       * rate_per_month
       * (1 + rate_per_month) ** number_of_payments
       / ((1 + rate_per_month) ** number_of_payments - 1)
   )


if __name__ == "__main__":
 import doctest

 doctest.testmod()


from math import ceil, sqrt






def _lowerCamelCase  (		snake_case = 1_000_000  ):
							_lowerCAmelCase							=							0

							for outer_width in range(3     , (limit // 4) + 2  ):
														if outer_width**2 > limit:
																					_lowerCAmelCase							=							max(ceil(sqrt(outer_width**2 - limit  )  )     , 1  )
														else:
																					_lowerCAmelCase							=							1
														if (outer_width - hole_width_lower_bound) % 2:
																					hole_width_lower_bound += 1

														answer += (outer_width - hole_width_lower_bound - 2) // 2 + 1

							return answer


if __name__ == "__main__":
				print(f"""{solution() = }""")






