



"""simple docstring"""







import math



def 	__UpperCAmelCase (       __lowerCamelCase      )				-> bool:
		return math.sqrt(__lowerCAmelCase      ) * math.sqrt(__lowerCAmelCase      ) == num



def 	__UpperCAmelCase (       __lowerCamelCase      )				-> bool:
		lowercase__  :       str												=     0
		lowercase__  :       Optional[Any]												=     n
		while left <= right:
				lowercase__  :       Optional[Any]												=     (left + right) // 2
				if mid**2 == n:
						return True
				elif mid**2 > n:
						lowercase__  :       List[Any]												=     mid - 1
				else:
						lowercase__  :       Dict												=     mid + 1
		return False


if __name__ == "__main__":
							import doctest

							doctest.testmod()







'''simple docstring'''




from __future__ import annotations





def 	__lowerCamelCase			(      __lowerCAmelCase       :							float      ,    __lowerCAmelCase       :							float      ,    __lowerCAmelCase       :							float		)		->  float:
   if days_between_payments <= 0:
      raise ValueError("""days_between_payments must be > 0"""		)
   if daily_interest_rate < 0:
      raise ValueError("""daily_interest_rate must be >= 0"""		)
   if principal <= 0:
      raise ValueError("""principal must be > 0"""		)
   return principal * daily_interest_rate * days_between_payments





def 	__lowerCamelCase			(      __lowerCAmelCase       :							float      ,    __lowerCAmelCase       :							float      ,    __lowerCAmelCase       :							float      ,    )		->  float:
   if number_of_compounding_periods <= 0:
      raise ValueError("""number_of_compounding_periods must be > 0"""		)
   if nominal_annual_interest_rate_percentage < 0:
      raise ValueError("""nominal_annual_interest_rate_percentage must be >= 0"""		)
   if principal <= 0:
      raise ValueError("""principal must be > 0"""		)

   return principal * (
       (1 + nominal_annual_interest_rate_percentage) ** number_of_compounding_periods
       - 1
   )





def 	__lowerCamelCase			(      __lowerCAmelCase       :							float      ,    __lowerCAmelCase       :							float      ,    __lowerCAmelCase       :							float      ,    )		->  float:
   if number_of_years <= 0:
      raise ValueError("""number_of_years must be > 0"""		)
   if nominal_annual_percentage_rate < 0:
      raise ValueError("""nominal_annual_percentage_rate must be >= 0"""		)
   if principal <= 0:
      raise ValueError("""principal must be > 0"""		)

   return compound_interest(
       __lowerCAmelCase      ,    nominal_annual_percentage_rate / 3_65      ,    number_of_years * 3_65		)


if __name__ == "__main__":
 import doctest

 doctest.testmod()

