
'''simple docstring'''







def 				SCREAMING_SNAKE_CASE__	(   __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
	_snake_case   						=		rate_per_annum / 12

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



'''simple docstring'''







from collections import defaultdict
from math import gcd







def 				SCREAMING_SNAKE_CASE__	(   __A = 1_500_000	)       ->	int:
	_snake_case   						=		defaultdict(__A	)
	_snake_case   						=		2
	while 2 * euclid_m * (euclid_m + 1) <= limit:
		for euclid_n in range((euclid_m % 2) + 1			,				__A			,				2	):
			if gcd(__A			,				__A	) > 1:
				continue
			_snake_case   						=		2 * euclid_m * (euclid_m + euclid_n)
			for perimeter in range(__A			,				limit + 1			,				__A	):
				frequencies[perimeter] += 1
		euclid_m += 1
	return sum(1 for frequency in frequencies.values() if frequency == 1	)


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

