Autor Tema: ayuda con java saber si un número es primo  (Leído 23286 veces)

felix

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 34
    • Ver Perfil
ayuda con java saber si un número es primo
« en: 21 de Marzo 2014, 23:52 »
lo que pasa es que no puedo llamar a un metodo de otra clase .lo que quiero hacer en este programa es con ayuda de mi otra clase primo,preguntar en otra clase si el numero es primo y que me devuelva el mismo numero.
este en la clase que me manda error
Código: [Seleccionar]
public class FactoresPrimos
{
    Primo rimo=new Primo();
    public boolean factores (int n)
    {   
        boolean res;
        res=rimo.esPrimo(n);   
        if(res==true)
        {
            System.out.println("el factor primo de :"+n+"es :"+n);
        }
        return res;
    }
}
y la clase primo
Código: [Seleccionar]
public class Primo
{
    public boolean ePrimo(int n)
    {
        return !esPrimo(n,n-1);
    }
    public boolean esPrimo(int n,int divisor)
    {
        boolean res=false;
        if(divisor==2)
        {
            res=(n%2==0);
        }else
        {
            res=(n%divisor==0)||esPrimo(n,divisor-1);
        }
        return res;
    }
}
« Última modificación: 15 de Septiembre 2014, 13:52 por Alex Rodríguez »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:ayuda con java números primos
« Respuesta #1 en: 22 de Marzo 2014, 14:57 »
Hola, si lo quieres es saber si un número es primo aquí te dejo el código. Para ver el resultado del programa tienes que ejecutar el método main de la clase testPrimo:


Clase Primo:

Código: [Seleccionar]
public class Primo {

    boolean esPrimo(int n) {
        //Comprobamos si es múltiplo de 2
        if (n%2==0) return false;
        //Si no es múltiplo de 2, comprobamos si es divisible por algún número impar
        for(int i=3;i*i<=n;i+=2) {
            if(n%i==0)
                return false;
        }
        return true;
    }
}

Clase testPrimo:

Código: [Seleccionar]
public class testPrimo {
    public static void main(String[] Args) {
        Primo algoritmoPrimos = new Primo();
        int numeroASaberSiEsPrimo = 0;
        for (int i= 1; i<10; i++) {
            numeroASaberSiEsPrimo = i;
            if (algoritmoPrimos.esPrimo(numeroASaberSiEsPrimo) == true) {
                System.out.println("El número " + numeroASaberSiEsPrimo + " es primo");
            }
            else {
                System.out.println("El número " + numeroASaberSiEsPrimo + " no es primo");
            }
        }
    }
}

El resultado si ejecutas el programa es:

El número 1 es primo
El número 2 no es primo
El número 3 es primo
El número 4 no es primo
El número 5 es primo
El número 6 no es primo
El número 7 es primo
El número 8 no es primo
El número 9 no es primo
Responsable de departamento de producción aprenderaprogramar.com

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".