BigInteger gcd值

时间:2014-04-04 13:55:31

标签: java biginteger greatest-common-divisor

BigInteger n = BigInteger.valueOf(5);
BigInteger a = BigInteger.valueOf(3);
System.out.println(a.gcd(n) != BigInteger.ONE);

为什么这个评估为true,即使5和3的gcd是1?

2 个答案:

答案 0 :(得分:3)

您不应使用!=运算符,而应使用equals()方法

!(a.gcd(n).equals(BigInteger.ONE))

<强>解释

在Java中,==!=运算符在对象上使用时,比较变量是否是对内存中同一对象的引用,而不是对象具有相同的值。 equals()方法检查它们是否具有相同的值。

答案 1 :(得分:1)

由于BigInteger是一个对象,您应该使用等于。您可以使用 == != 来比较对象的引用。

!(a.gcd(n).equals(BigInteger.ONE));