Portada Favoritos
Lista Articulos: [0-C] [C-I] [I-P] [P-Z] | Todas las categorías | Página aleatoria | Lo que enlaza aquí

Algoritmo de factorización en números primos

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);
 
 }
}


This site support the Wikimedia Foundation. This Article originally from Wikipedia. All text is available under the terms of the GNU Free Documentation License Page HistoryOriginal ArticleWikipedia