BigInteger n = BigInteger.valueOf(5);
BigInteger a = BigInteger.valueOf(3);
System.out.println(a.gcd(n) != BigInteger.ONE);
为什么这个评估为true
,即使5和3的gcd是1?
答案 0 :(得分:3)
您不应使用!=
运算符,而应使用equals()
方法
!(a.gcd(n).equals(BigInteger.ONE))
<强>解释强>
在Java中,==
和!=
运算符在对象上使用时,比较变量是否是对内存中同一对象的引用,而不是对象具有相同的值。 equals()
方法检查它们是否具有相同的值。
答案 1 :(得分:1)
由于BigInteger是一个对象,您应该使用等于。您可以使用 == 或!= 来比较对象的引用。
!(a.gcd(n).equals(BigInteger.ONE));