Este es el algoritmo para descomponer un numero dado en sus factores primos:
import java.util.Scanner;
/**
* @date
* @author Wilmer Lopez
*/
public class ProgramacionV {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner leer = new Scanner(System.in);
System.out.println("Ingrese un numero");
int m = leer.nextInt();
System.out.println("Los factores primo son:");
FactoresPrimos(m);
System.out.println("\n");
}
/**
*
* @param n
*/
public static void FactoresPrimos(int n){
if (esPrimo(n)){
System.out.print("*"+n+" ");
return;
}
int factor1 = (int) Math.sqrt(n);
while (n % factor1 !=0) {
factor1++;
}
FactoresPrimos(factor1);
FactoresPrimos(n/factor1);
}
/**
*
* @param numero
* @return
*/
public static boolean esPrimo(int numero){
int contador = 2;
boolean primo=true;
while ((primo) && (contador!=numero)){
if (numero % contador == 0) {
primo = false;
}
if (numero == 1) {
primo = true;
return primo;
}
contador++;
}
return primo;
}
}