miércoles, 9 de marzo de 2016

Bien esta vez vamos a ver un trabajo que me dejaron hace poco :y bueno este lenguaje no es para mi el problema es el siguiente

haga un programa de números Abundantes y Gemelos que deben de correr en hilos separados, permitiendo calcular asincronamente ambos.

bien sin mas vamos al codigo 

public class Juntos01 {
    public static void main(String arg[]){
        try {
            Thread.currentThread().sleep( 100 );
        }catch( InterruptedException e ){}
        Thread hilo = new Gemelos();
        Thread hilo2 = new Abundantes();

        hilo.start();
        hilo2.start();
       
    }
}


ahora las clases de abundantes y gemelos 
class Gemelos extends Thread{
    public static void main(String loquiequiera[]){
        long inicio_pri, fin_pri, mili_pri;
        //Gemelos a = new Gemelos();
        //a.saludar();
        inicio_pri=System.currentTimeMillis();
        //a.Mostrar_n_gemelos(10);
        fin_pri=System.currentTimeMillis();
        mili_pri=fin_pri - inicio_pri;
        System.out.println("MILISEGNDOS=" + mili_pri);


    }


    private boolean primo(long num_a_chk){
            int divisibles=0;
            for(long con_quien=num_a_chk; con_quien>=1; con_quien--){
                if(num_a_chk%con_quien == 0 ) divisibles++;
            }
            if( divisibles==2 )
                return true;
            else
                return false;
    }

    public void run(){
        int n=100;
        long num_a_chk=3, encontrados=0;
        while(encontrados<n){
            if(primo(num_a_chk)==true && primo(num_a_chk-2) == true ){
                System.out.println("Gemelos: "+ (num_a_chk-2) + " , " + num_a_chk);
                encontrados++;
            }
            num_a_chk++;
        }
    }
}






class Abundantes extends Thread{
    public static void main (String a[]){
        long tini, tfin, ttarda;
        //Abundantes obj = new Abundantes();

        tini=System.currentTimeMillis();
        //obj.mostrar_abundantes(1000);
        tfin=System.currentTimeMillis();
        ttarda = tfin - tini;
        System.out.println("TARDO: " + ttarda);
    }
    private boolean es_abundante(long x){

        long i, suma=0;
        //System.out.println("Checar: " + x);
        for (i = 1; i<=x; i++){
            if (x % i == 0){
            //System.out.print ("+ " + i );
                suma += i; // sumar = sumar + i
            }
        }
        //System.out.println();
        //System.out.println (suma + " > 2* " + x);
        if( suma > 2*x ) return true;
        else return false;
    }

    public void run(){
        int n=100;
        while (n>1){
        // --n   n--
            if(es_abundante(n))
                System.out.println(n + " es abundante");
                n--;
        }
    }

} 

espero que este pequeño código le sirva a alguien mas :)

No hay comentarios.:

Publicar un comentario