User_67128:
私は、JavaのBigInteger GCDメソッドのソースコードを見ていました。私は、クラス内の任意の場所に定義されていなかったhybridGCD()メソッドを見つけました。
ここでのリンクは次のとおりです。http://hg.openjdk.java.net/jdk/jdk11/file/tip/src/java.base/share/classes/java/math/BigInteger.java
public BigInteger gcd(BigInteger val) {
if (val.signum == 0)
return this.abs();
else if (this.signum == 0)
return val.abs();
MutableBigInteger a = new MutableBigInteger(this);
MutableBigInteger b = new MutableBigInteger(val);
MutableBigInteger result = a.hybridGCD(b);
return result.toBigInteger(1);
}
GCD方法は(百万桁各々を含む)は、2つのかなり大きな数のための時間応答されませんでした。
スコット・ハンター:
(それはMutableBigIntegerの一部であるため)の方法は、ここで定義されています。