Acciones

2010 Ejercicio 3: Calcular el mayor factor primo de un número compuesto

De Software Libre para la Enseñanza y el Aprendizaje de las Matemáticas (2010-11)

Enunciado

Los factores primos de 13195 son 5, 7, 13 y 29.

¿Cuál es el mayor factor primo del número 600851475143 ?

Solución

La solución es directa

(%i1) last(factor(600851475143));
(%o1) 6857

Solución 2

Solución en lenguaje Groovy. Utilizando el algoritmo que usábamos en el colegio para construir la lista de factores y luego quedándome con el último de la lista. Obsérvese el uso de variables de tipo BigInteger.

BigInteger numero  = 600851475143
BigInteger divisor = 1
def factores       = []
   
while (numero > 1) {
    divisor = divisor + 1
    while (numero % divisor == 0) {
        factores << divisor
        numero = numero / divisor
    }
}

println factores   
println 'Solución: ' + factores.last()