¿Cuál es el máximo factor común de 2 ^ 15 + 3 ^ 15 y 3 ^ 25 + 2 ^ 25?

TL; DR: 275, como un caso especial de un resultado más general demostrado a continuación.

(La respuesta existente no prueba que 275 es el MCD, solo que es un factor común, de ahí la prueba a continuación).

El resultado anterior es una aplicación del siguiente teorema.

Teorema: dado a, b coprimo ym, n> 0, sea d = mcd (m, n). Entonces [math] mcd (a ^ mb ^ m, a ^ nb ^ n) = a ^ db ^ d [/ math].

Prueba:

Primero, observe que la declaración es trivialmente verdadera para m = n = 1: es decir, [matemática] mcd (a ^ 1-b ^ 1, a ^ 0-b ^ 0) = mcd (ab, 0) = a ^ 1- b ^ 1 [/ matemáticas]. Esto sirve como nuestro caso base.

Luego, elija algunos m, n> 0. Suponga sin pérdida de generalidad que [math] m \ geq n [/ math]. Suponga que [math] \ forall j, k [/ math] tal que [math] j + k <m + n [/ math], [math] mcd (a ^ jb ^ j, a ^ kb ^ k) = a ^ {mcd (j, k)} – b ^ {mcd (j, k)} [/ math]. (Esta es la fuerte hipótesis inductiva).

Ahora, usaré un resultado elemental de la teoría de números: [matemática] \ forall p, q, d: gcd (p, q) = gcd (p-qd, q) [/ math]. Elija [matemáticas] p = a ^ mb ^ m, q = a ^ nb ^ n, d = b ^ {mn} [/ matemáticas]. Luego:

[matemáticas] p-qd = a ^ mb ^ mb ^ {mn} (a ^ nb ^ n) = a ^ mb ^ ma ^ nb ^ {mn} + b ^ m [/ matemáticas]

[math] = a ^ ma ^ nb ^ {mn} = a ^ n (a ^ {mn} -b ^ {mn} [/ math]. Del resultado anterior, podemos concluir que:

[matemática] mcd (a ^ mb ^ m, a ^ nb ^ n) = mcd (a ^ n (a ^ {mn} b ^ {mn}), a ^ nb ^ n) [/ matemática].

Ahora, recuerde que ayb son coprimos, es decir, no tienen factores comunes. Por lo tanto, [matemática] a ^ n [/ matemática] y [matemática] b ^ n [/ matemática] son ​​coprimos, y por lo tanto [matemática] a ^ n [/ matemática] y [matemática] a ^ nb ^ n [/ matemática ] también son coprimos.

Por lo tanto, el término [matemática] a ^ n [/ matemática] en la expresión [matemática] a ^ n (a ^ {mn} b ^ {mn}) [/ matemática] no puede contribuir con ningún factor común al MCD. Por lo tanto, podemos concluir:

[matemática] mcd (a ^ mb ^ m, a ^ nb ^ n) = mcd (a ^ {mn} -b ^ {mn}, a ^ nb ^ n) [/ matemática]. Pero (porque n> 0) tenemos que [matemática] (mn) + n = m <m + n [/ matemática], así que por nuestra fuerte hipótesis de inducción:

[matemáticas] mcd (a ^ {mn} -b ^ {mn}, a ^ nb ^ n) = a ^ gcd (mn, n) -b ^ gcd (mn, n) [/ math]. Pero recuerde del resultado anterior que [math] gcd (mn, n) = gcd ((mn) – (- 1) n, n) = gcd (m, n) [/ math], lo que lleva a la conclusión:

[matemática] mcd (a ^ mb ^ m, a ^ nb ^ n) = a ^ gcd (m, n) -b ^ gcd (m, n) [/ math].

Por fuerte inducción en la cantidad m + n, se demuestra el teorema.

Ahora, para usar el teorema, observe que [matemáticas] 2 ^ 25 + 3 ^ 25 = 2 ^ 25 – (- 3) ^ 25 [/ matemáticas], y lo mismo con el otro término. Por lo tanto, sea [matemática] a = 2, b = -3, m = 25, n = 15 [/ matemática].

2 y -3 son números coprimos, por lo tanto, [matemática] d = mcd (25, 15) = 5 [/ matemática]. Entonces, tenemos nuestra conclusión por el teorema:

[matemáticas] mcd (2 ^ 25 + 3 ^ 25, 2 ^ 15 + 3 ^ 15) = 2 ^ 5 – (- 3) ^ 5 = 2 ^ 5 + 3 ^ 5 = 275 [/ matemáticas].

La respuesta es 275, según el programa a continuación. Si la respuesta es correcta, agradezco la ayuda de Programming in Scala, Third Edition . Si la respuesta es incorrecta, mi mal.

paquete org.jr10.oneoff
importar scala.math.BigInt._
objeto GCD {
def main (args: Array [String]): Unit = {
val a = BigInt (2) .pow (15) + BigInt (3) .pow (15)
val b = BigInt (3) .pow (25) + BigInt (2) .pow (25)
println (mcd (a, b))
}

def gcd (a: BigInt, b: BigInt): BigInt =
if (b == 0) a.abs else gcd (b, a% b)
}