





import math
from datetime import datetime, timedelta



def A_     (		A__    )  ->		datetime:
       a__						:     Union[str, Any]			=    year % 19
       a__						:     Any			=    year % 4
       a__						:     Tuple			=    year % 7
       a__						:     List[Any]			=    math.floor(year / 100    )
       a__						:     Any			=    math.floor((13 + 8 * leap_day_inhibits) / 25    )
       a__						:     Optional[Any]			=    leap_day_inhibits / 4
       a__						:     Optional[int]			=    (
           15 - lunar_orbit_correction + leap_day_inhibits - leap_day_reinstall_number
       ) % 30
       a__						:     Tuple			=    (4 + leap_day_inhibits - leap_day_reinstall_number) % 7

       # days to be added to March 21
       a__						:     Optional[Any]			=    (19 * metonic_cycle + secular_moon_shift) % 30

       # PHM -> Paschal Full Moon
       a__						:     Optional[int]			=    (
           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(A__		,				4		,				19    )
       elif days_to_add == 28 and days_from_phm_to_sunday == 6:
              return datetime(A__		,				4		,				18    )
       else:
              return datetime(A__		,				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):
        lowercase				:	List[Any]      						=  """will be""" if year > datetime.now().year else """was"""
        print(F"""Easter in {year} {tense} {gauss_easter(year)}""")









def A_     (		A__		,				A__		,				A__    )  ->		float:
       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(A__		,				A__    ):
              raise Exception('Years to repay must be an integer > 0'    )

       # Yearly rate is divided by 12 to get monthly rate
       a__						:     str			=    rate_per_annum / 12

       # Years to repay is multiplied by 12 to get number of payments as payment is monthly
       a__						:     List[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()


