




def       UpperCAmelCase__  (     lowerCamelCase,			lowerCamelCase,			lowerCamelCase   ):
  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(lowerCamelCase,			lowerCamelCase   ):
    raise Exception("Years to repay must be an integer > 0"   )

  # Yearly rate is divided by 12 to get monthly rate
  lowercase    :List[str]      	=						rate_per_annum / 12

  # Years to repay is multiplied by 12 to get number of payments as payment is monthly
  lowercase    :Union[str, Any]      	=						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()









def       UpperCAmelCase__  (     lowerCamelCase,			lowerCamelCase   ):
  return int((input_a, input_a).count(0   ) != 0   )



def       UpperCAmelCase__  (     ):
  assert nand_gate(0,			0   ) == 1
  assert nand_gate(0,			1   ) == 1
  assert nand_gate(1,			0   ) == 1
  assert nand_gate(1,			1   ) == 0


if __name__ == "__main__":
     print(nand_gate(0, 0))
     print(nand_gate(0, 1))
     print(nand_gate(1, 0))
     print(nand_gate(1, 1))



