Código Java – Números Primos


//Codificado por: sAfOrAs
//LIstar los numeros según el numero de digitos indicado
//Considero solo hasta numeros menores a 100000 (5 digitos), por el hecho de k buscar numeros primos a partir de 6 digitos, el proceso se hace muy lento.
public class SyGNumerosPrimos
{
	public static void main(String arg[])
    	{
		int numDigitos=0;
		int ndigitos=0;
		numDigitos=Integer.parseInt(arg[0]);
		if(numDigitos<=0)
			System.out.println("Ingrese como parámetro, un numero de digitos correcto (mayor que 0): ");
        	for(int i = 1; i <= 99999; i++ )
		{
			ndigitos=contarDigitos(i);
			if(ndigitos==numDigitos)
				if (primo(i) == true) 
					System.out.println(i);    
		}
    	}

    	public static boolean primo(int num)
    	{
        	boolean p = false;
    
        	if (num < 4) p = true;
        	else
        	{
			if (num % 2 == 0) p = false; 
            	else
            	{
                	int contador = 0;  
                	int i = 1; 
                	int limite = (num - 1) / 2; 
                	if  (limite % 2 == 0) limite--;  
            
                	while(i <= limite)
                	{
                		if (num % i == 0) contador++;
                    		i += 2;
                    		if (contador == 2) i = limite + 1;
                	}

		if (contador == 1) p = true;
            } 
        } 
    
        return p;
    }

	public static int contarDigitos(int numeroEntero)
	{
	        int divisionEntera = numeroEntero;

	        int contador=0;

	        while (divisionEntera != 0)
		{
		    divisionEntera = divisionEntera / 10;
		    contador++;
		}
	return contador;
	}

}
Anuncios

4 comentarios sobre “Código Java – Números Primos

  1. hola, primo(1) y primo(0) dan true? una forma mas rapida de saber si es primo… de forma sencilla se me ocurre:

    public static boolean primo(int n){
    //verifico que no sea par o que sea 1
    n = Math.abs(n);
    if(n&1)==0 && n!=2) || n==1)return false;
    for(int i=3;i<(int)(Math.sqrt(n))+1;i+=2){
    if(n%i==0)return false;
    }
    return true;
    }

    de la misma forma contarDigitos podria ser

    public static int contarDigitos(int numeroEntero){
    return String.valueOf(numeroEntero).length();
    }

Deja tu comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s