



def        lowercase_							(A : int		,					A : int      ):
       while b:
              snake_case__	,				snake_case__							:	Optional[int]   	=	b, a % b
       return a
def        lowercase_							(A : int		,					A : int      ):
       return a if b == 0 else euclidean_gcd_recursive(A		,					a % b      )
def        lowercase_							():
       print(F'''euclidean_gcd(3, 5) = {euclidean_gcd(3		,					5      )}'''      )
       print(F'''euclidean_gcd(5, 3) = {euclidean_gcd(5		,					3      )}'''      )
       print(F'''euclidean_gcd(1, 3) = {euclidean_gcd(1		,					3      )}'''      )
       print(F'''euclidean_gcd(3, 6) = {euclidean_gcd(3		,					6      )}'''      )
       print(F'''euclidean_gcd(6, 3) = {euclidean_gcd(6		,					3      )}'''      )

       print(F'''euclidean_gcd_recursive(3, 5) = {euclidean_gcd_recursive(3		,					5      )}'''      )
       print(F'''euclidean_gcd_recursive(5, 3) = {euclidean_gcd_recursive(5		,					3      )}'''      )
       print(F'''euclidean_gcd_recursive(1, 3) = {euclidean_gcd_recursive(1		,					3      )}'''      )
       print(F'''euclidean_gcd_recursive(3, 6) = {euclidean_gcd_recursive(3		,					6      )}'''      )
       print(F'''euclidean_gcd_recursive(6, 3) = {euclidean_gcd_recursive(6		,					3      )}'''      )


if __name__ == "__main__":
 main()











from math import factorial
def        lowercase_							(A : int		,					A : int		,					A : float      ):
       if successes > trials:
              raise ValueError('successes must be lower or equal to trials'      )
       if trials < 0 or successes < 0:
              raise ValueError('the function is defined for non-negative integers'      )
       if not isinstance(A		,					A      ) or not isinstance(A		,					A      ):
              raise ValueError('the function is defined for non-negative integers'      )
       if not 0 < prob < 1:
              raise ValueError('prob has to be in range of 1 - 0'      )
       snake_case__							:	List[Any]   	=	(prob**successes) * ((1 - prob) ** (trials - successes))
       # Calculate the binomial coefficient: n! / k!(n-k)!
       snake_case__							:	List[str]   	=	float(factorial(A      )      )
       coefficient /= factorial(A      ) * factorial(trials - successes      )
       return probability * coefficient


if __name__ == "__main__":
 from doctest import testmod

 testmod()
 print("Probability of 2 successes out of 4 trails")
 print("with probability of 0.75 is:", end=" ")
 print(binomial_distribution(2, 4, 0.75))






