User_67128:
Estaba buscando en Java BigInteger código fuente método mcd. He encontrado el método hybridGCD () que no estaba definido en cualquier parte de la Clase.
aquí está el enlace: 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);
}
El método gcd no estaba respondiendo a una hora para dos bastante grandes números (que contienen millones de dígitos cada uno).
Scott Hunter:
El método se define aquí (ya que es parte de MutableBigInteger):