// Vector donde estan almacenados los numeros de los que se hallara su MCD
Entero[] vector
// Obtenemos el menor elemento del vector, el cual sera el maximo valor por el que dividiremos cada elemento del vector.
Entero menor = MenorElemento( vector )
// Menor de todos los exponentes del factor primo actual
Entero menorExponente = 0
// Valor que almacena el MCD divisor de los numeros
Entero MCD = 1
// Indica si el factor primo actual es un divisor comun de todos los numeros
Booleano esDivisorComun
// "i", indica el factor que verificaremos si es factor comun ( divisor ) a todos los numeros
Para i desde 2 hasta i*i <= menor hacer
esDivisorComun = verdad
j = 1
menorExponente = 0
Mientras( esDivisorComun )
Si( j = n + 1 ) // Si el divisor "i", es comun a todos entonces el menorExponente aumenta 1
menorExponente = menorExponente + 1
j = 1
// Como el i es divisor comun, pasamos a dividir todos los numeros entre i,
// esto tambien afecta a "menor"
Para h de 1 hasta n hacer
vector[ h ] = vector[ h ] / i
FinPara
menor = menor / i
FinSi
Si( vector[ i ] mod i != 0 ) // Si el divisor actual no es comun a todos, pasamos al siguiente divisor
esDivisorComun = falso
Fin_Mientras
// Actualizamos el MCD
MCD = MCD * Potencia( i, menorExponente )
Fin_Para