Java番石榴 |带示例的 LongMath 类的 gcd(long a, long b)
Guava 的 LongMath 类的方法gcd(long a, long b)返回两个参数 a 和 b 的最大公约数。
句法:
public static long gcd(long a, long b)
参数:该方法接受两个参数a和b,分别是要查找其GCD的long类型。
返回类型:此方法返回将传递给函数的两个参数相除的最大正长值。
例外:如果 a 为负数或 b 为负数,方法 gcd(long a, long b) 将抛出IllegalArgumentException 。
注意:如果 a 和 b 都为零,则该方法返回零。
示例 1:
// Java code to show implementation of
// gcd(long a, long b) method of Guava's
// LongMath class
import java.math.RoundingMode;
import com.google.common.math.LongMath;
class GFG {
// Driver code
public static void main(String args[])
{
long a1 = 14;
long b1 = 70;
// Using gcd(long a, long b) method
// of Guava's LongMath class
long ans1 = LongMath.gcd(a1, b1);
System.out.println("GCD of " + a1
+ " and " + b1
+ " is " + ans1);
long a2 = 23;
long b2 = 15;
// Using gcd(long a, long b) method
// of Guava's LongMath class
long ans2 = LongMath.gcd(a2, b2);
System.out.println("GCD of " + a2
+ " and " + b2
+ " is " + ans2);
}
}
输出:
GCD of 14 and 70 is 14
GCD of 23 and 15 is 1
示例 2:
// Java code to show implementation of
// gcd(long a, long b) method of Guava's
// LongMath class
import java.math.RoundingMode;
import com.google.common.math.LongMath;
class GFG {
// Driver code
public static void main(String args[])
{
long a = -5;
long b = 15;
try {
// Using gcd(long a, long b) method
// of Guava's LongMath class
// This should throw "IllegalArgumentException"
// as a < 0
long ans = LongMath.gcd(a, b);
}
catch (Exception e) {
System.out.println(e);
}
}
}
输出:
java.lang.IllegalArgumentException: a (-5) must be >= 0
参考: https://google.github.io/guava/releases/20.0/api/docs/com/google/common/math/LongMath.html#gcd-long-long-