jueves, 6 de diciembre de 2012

Algoritmo para obtener todos los divisores primos de un número introducido por teclado


El siguiente ejercicio es una variación del anterior en el que obteníamos todos los divisores de un número cualquiera. En este caso obtendremos todos los divisores que sean primos de un número que introduciremos por teclado. Haremos un método que obtenga los divisores del número y compruebe si ese divisor es primo o no. A la clase la he llamado Divisores y el código quedaría así:

import java.util.Scanner;
public class Divisores {
// Codigo por www.DesarrollarAplicaciones.com
public static boolean primos(int divisor){
boolean resultado=true;
int contadordivisores=0;
int posibledivisor=1;
while(posibledivisor<=divisor){
if(divisor%posibledivisor==0){
contadordivisores++;
}
posibledivisor++;
}
if(contadordivisores<=2){
resultado=true;
}
else{
resultado=false;
}
return resultado;
}
public static void main(String[] args) {
Scanner teclado=new Scanner(System.in);
boolean llamada;
int numero;
int divisor=1;
System.out.println("Introduce el numero");
numero=teclado.nextInt();
while(divisor<=numero){
if(numero%divisor==0){
llamada=primos(divisor);
if(llamada==true){
System.out.println(divisor);
}
}
divisor++;
}
}
}

2 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. import java.util.Scanner;
    public class Ejercicio5Hoja3 {

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner teclado=new Scanner(System.in);
    int div=1,cont=0,div2=1;
    System.out.println("Dame un numero para darte sus divisores primos");
    int num=teclado.nextInt();
    while (div<=num){
    if (num%div==0){
    while (div>=div2){
    if (div%div2==0){
    cont++;
    }
    div2++;
    }
    div2=1;
    if (cont==2)//No consideraré al 1 como número primo
    {
    System.out.println(div);
    }cont=0;
    }div++;
    }
    }
    }

    ResponderEliminar