ALGORITMO PARA OBTENER DIVISORES

 

Siempre es útil conocer los divisores de un número. Desgraciadamente mientras más grande es el número, más difícil es calcular sus divisores, ya que más larga se vuelve la búsqueda de sus divisores; pero gracias al computador se puede hacer esta búsqueda en pocos segundos. El algoritmo que presento en esta ocasión, busca los divisores de un número sin importar su tamaño; para ello realiza una búsqueda exhaustiva dividiendo el número dado por todos los números menores a él.
El algoritmo en pseudo-código es:

Sea n el número a calcular divisores y a un auxiliar
a=1
(*) Si n/a es exacto
entonces a es divisor de n y se imprime por pantalla el valor de a
Sino
entonces no se hace nada
Verificar si a y n son iguales
Si lo son, entonces salir
Sino, aumentar a en 1 y volver a (*)

En lenguaje C el algoritmo queda:

void divisor (int n)
{
int a;
a=1;
while (a!=n)
{
if (n%a==0)
printf (“%d\t”,a);
a++;
}
}

Aprovechando este mismo algoritmo, uno le puede hacer una modificación de manera que nos diga si el número es primo o no. Para ello basta poner un contador dentro del “if” que cuente cada vez que se encuentre un divisor, al final del proceso se verifica el valor del contador. Si el contador ha contado 2, el número es primo (tiene sólo 2 divisores), de lo contrario no es primo.