| Lista Articulos: [0-C] [C-I] [I-P] [P-Z] | Todas las categorías | Página aleatoria | Lo que enlaza aquí | ||||||
El siguiente algoritmo imprime los factores primos de un número entero. Está realizado en Java.
/**
* Imprime los factores primos de un número
*/
class factoresPrimos
{
private int numero;
private boolean primo(int num)
{
int n;
if (num == 1) return false;
for (int i=2; i<= num/2; i++)
{
n = num % i;
if ( n == 0)
return false;
}
return true;
}
/**
* Retorna el siguiente primo, no se incluye a él
*/
private int primoSiguiente(int num)
{
while (true)
{
num++;
if (primo(num))
return num;
}
}
// desde 2 para cada primo hasta que sea divisible por num
// repita lo anterior pero para num/divisor hasta
public factoresPrimos (int num)
{
numero=num;
System.out.println(num);
while (num > 1)
{
for (int i= 2; i <=num; i=primoSiguiente(i))
{
if (num % i == 0)
{
System.out.println("\t" + i );
num = num/i;
System.out.println(num);
break;
}
}
}
}
}
Para poder probarlo se necesita hacer un programa de prueba, que puede ser el siguiente:
class principal
{
public static void main (String args[])
{
factoresPrimos a;
a= new factoresPrimos(12675);
}
}


