Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: felix en 21 de Marzo 2014, 23:52

Título: ayuda con java saber si un número es primo
Publicado por: felix 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;
    }
}
Título: Re:ayuda con java números primos
Publicado por: César Krall 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