两个数阶乘的 GCD
原文:https://www.geeksforgeeks.org/gcd-factorials-two-numbers/
给定两个数 m 和 n,求它们阶乘的 GCD。 例:
Input : n = 3, m = 4
Output : 6
Explanation:
Factorial of n = 1 * 2 * 3 = 6
Factorial of m = 1 * 2 * 3 * 4 = 24
GCD(6, 24) = 6.
Input : n = 9, m = 5
Output : 20
Explanation:
Factorial of n = 1 * 2 * 3 *4 * 5 * 6 * 7 * 8
* 9 = 362880
Factorial of m = 1 * 2 * 3 * 4 * 5 = 120
GCD(362880, 120) = 120
一个简单的解决方案是找到两个数字的阶乘。然后找到计算阶乘的 GCD 。 一个有效的解决方案是基于两个阶乘的 GCD 等于较小的阶乘的事实(注意阶乘具有所有公共项)。 以下是上述方法的实施。
C++
// CPP program to find GCD of factorial of two
// numbers.
#include <bits/stdc++.h>
using namespace std;
int factorial(int x)
{
if (x <= 1)
return 1;
int res = 2;
for (int i = 3; i <= x; i++)
res = res * i;
return res;
}
int gcdOfFactorial(int m, int n)
{
return factorial(min(m, n));
}
int main()
{
int m = 5, n = 9;
cout << gcdOfFactorial(m, n);
return 0;
}
Java 语言(一种计算机语言,尤用于创建网站)
// Java program to find GCD of factorial
// of two numbers.
public class FactorialGCD{
static int factorial(int x)
{
if (x <= 1)
return 1;
int res = 2;
for (int i = 3; i <= x; i++)
res = res * i;
return res;
}
static int gcdOfFactorial(int m, int n)
{
int min = m < n ? m : n;
return factorial(min);
}
/* Driver program to test above functions */
public static void main (String[] args)
{
int m = 5, n = 9;
System.out.println(gcdOfFactorial(m, n));
}
}
// This code is contributed by Prerna Saini
计算机编程语言
# Python code to find GCD of factorials of
# two numbers.
import math
def gcdOfFactorial(m, n) :
return math.factorial(min(m, n))
# Driver code
m = 5
n = 9
print(gcdOfFactorial(m, n))
C
// C# program to find GCD of factorial
// of two numbers.
using System;
public class GFG{
static int factorial(int x)
{
if (x <= 1)
return 1;
int res = 2;
for (int i = 3; i <= x; i++)
res = res * i;
return res;
}
static int gcdOfFactorial(int m, int n)
{
int min = m < n ? m : n;
return factorial(min);
}
/* Driver program to test above functions */
public static void Main()
{
int m = 5, n = 9;
Console.WriteLine(gcdOfFactorial(m, n));
}
}
// This code is contributed by Anant Agarwal.
服务器端编程语言(Professional Hypertext Preprocessor 的缩写)
<?php
// PHP program to find GCD
// of factorial of two numbers.
function factorial($x)
{
if ($x <= 1)
return 1;
$res = 2;
for ($i = 3; $i <= $x; $i++)
$res = $res * $i;
return $res;
}
function gcdOfFactorial($m, $n)
{
return factorial(min($m, $n));
}
// Driver Code
$m = 5; $n = 9;
echo gcdOfFactorial($m, $n);
// This code is contributed by ajit
?>
java 描述语言
<script>
// JavaScript program to find GCD of factorial
// of two numbers.
function factorial(x) {
if (x <= 1)
return 1;
var res = 2;
for (i = 3; i <= x; i++)
res = res * i;
return res;
}
function gcdOfFactorial(m , n) {
var min = m < n ? m : n;
return factorial(min);
}
/* Driver program to test above functions */
var m = 5, n = 9;
document.write(gcdOfFactorial(m, n));
// This code is contributed by aashish1995
</script>
输出:
120
版权属于:月萌API www.moonapi.com,转载请注明出处