RETO divisores de 15000 [JAVA]

Iniciado por trolleoatodos, 2 Septiembre 2013, 13:47 PM

0 Miembros y 1 Visitante están viendo este tema.

trolleoatodos

El reto es ,que en la salida de un programa java ,ponga los numeros que dividen
entre 3 , del 1 a 15000 y lo mismo con 5 y 7
Ej. "los numeros divisibles entre 3 son" 3, 6 ..
Y lo mism con los otros dos
Ahí va la solución ,el code es mío xDD
public class retojava {

/**
* @param args
*/
static int [] div3 = new int[5000]; //5000 por que 3*5000=15000 el no justo
static int [] div5 = new int[3000];
static int [] div7 = new int[3000];
static int vcount=0;
static int vcount1=0;
static int vcount2=0;
static retojava ava  = new retojava();
public static void main(String[] args) {

for (int i =1 ;i<15000;i++){
math(i);

}
mostrar();
System.out.println("Y el result de todos los numeros en los arrays son "+(vcount+vcount1+vcount2));
}
private static void mostrar() {
System.out.println("los div entr 3 son ");
for (int i =0 ;i<vcount;i++){
System.out.print(div3[i]+",");
}
System.out.println("\n los div entr 5 son ");
for (int i =0 ;i<vcount1;i++){
System.out.print(div5[i]+",");
}
System.out.println("\n los div entr 7 son ");
for (int i =0 ;i<vcount2;i++){
System.out.print(div7[i]+",");
}
}
public void add3(int i ){
try{
div3[vcount]=(i);
vcount++;}
catch(Exception x){x.printStackTrace();}
}
public void add5(int i ){
div5[vcount1]=(i);
vcount1++;
}
public void add7(int i ){
div7[vcount2]=(i);
vcount2++;
}
private static void math(int i) {

if(i % 3==0){ava.add3(i);}
else if(i % 5==0){ava.add5(i);}
else if(i % 7==0){ava.add7(i);}
}

}

Modifico , el mism reto está en http://foro.infiernohacker.com/index.php?topic=11779.0

1mpuls0

Código (java) [Seleccionar]

/*
* Autor: Darhius929
*/
package basic;

public class Dividers {
   
    private static final int LOWER_LIMIT = 1;
    private static final int SUPERIOR_LIMIT = 15000;
    public static void main(String args[]) {
        int divisor3 = 3;
        numbersDivisible(divisor3);
       
        int divisor5 = 5;
        numbersDivisible(divisor5);
       
        int divisor7 = 7;
        numbersDivisible(divisor7);   
    }
   
    private static void numbersDivisible(int divisor) {
        for(int index=LOWER_LIMIT; index<SUPERIOR_LIMIT; index++){
            if(index%divisor==0) {
                System.out.println("El numero " + index + " es divisor de " + divisor);
            }
        }
    }
}
abc

trolleoatodos

Enhorabuena Darhius y encima mas ordenadito xDD

1mpuls0

Utilizando una función propia de módulo. :P

Código (java) [Seleccionar]

/*
* Autor: Darhius929
*/
package basic;

public class Dividers {
   
    private static final int LOWER_LIMIT = 1;
    private static final int SUPERIOR_LIMIT = 15000;
    public static void main(String args[]) {
        int divisor3 = 3;
        numbersDivisible(divisor3);
       
        int divisor5 = 5;
        numbersDivisible(divisor5);
       
        int divisor7 = 7;
        numbersDivisible(divisor7);
    }
   
    private static void numbersDivisible(int divisor) {
        for(int number=LOWER_LIMIT; number<SUPERIOR_LIMIT; number++){
            if(module(number,divisor)==0) {
               System.out.println("El n\u00famero " + number + " es divisor de " + divisor);
            }
        }
    }
   
    private static double module(double dividend, double divisor) {
        double remainder = 0.0;
        try {
            remainder = dividend - ((int)(dividend/divisor)*divisor);
        } catch(ArithmeticException ae) {
            ae.printStackTrace();
        }
        return remainder;
    }
}
abc