The::Beastieux

Sangre de Bestia + Corazón de Pingüino | Un blog acerca de Linux, *BSD, Open Source, Software Libre, Programación …

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;
	}

}

4 Respuestas a “Código Java – Números Primos

  1. Lydia H. marzo 15, 2014 en 4:03 pm

    Hola, no me corre

  2. Anónimo noviembre 7, 2013 en 1:18 pm

    no corre

  3. Anónimo septiembre 3, 2013 en 8:01 am

    y para imprimir los no primos?

  4. voodoo14 mayo 28, 2012 en 7:58 pm

    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();
    }

No te quedes callado. Pregunta, Comenta, Comparte, Sígueme, Suscríbete, Déjame tu opinión... Soy Beastieux Zeroo...

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

A %d blogueros les gusta esto: