Foro de elhacker.net

Programación => Java => Mensaje iniciado por: trolleoatodos en 2 Septiembre 2013, 13:47 pm



Título: RETO divisores de 15000 [JAVA]
Publicado por: trolleoatodos en 2 Septiembre 2013, 13:47 pm
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
Código:
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 (http://foro.infiernohacker.com/index.php?topic=11779.0)


Título: Re: RETO divisores de 15000 [JAVA]
Publicado por: 1mpuls0 en 2 Septiembre 2013, 17:55 pm
Código
  1. /*
  2.  * Autor: Darhius929
  3.  */
  4. package basic;
  5.  
  6. public class Dividers {
  7.  
  8.    private static final int LOWER_LIMIT = 1;
  9.    private static final int SUPERIOR_LIMIT = 15000;
  10.    public static void main(String args[]) {
  11.        int divisor3 = 3;
  12.        numbersDivisible(divisor3);
  13.  
  14.        int divisor5 = 5;
  15.        numbersDivisible(divisor5);
  16.  
  17.        int divisor7 = 7;
  18.        numbersDivisible(divisor7);  
  19.    }
  20.  
  21.    private static void numbersDivisible(int divisor) {
  22.        for(int index=LOWER_LIMIT; index<SUPERIOR_LIMIT; index++){
  23.            if(index%divisor==0) {
  24.                System.out.println("El numero " + index + " es divisor de " + divisor);
  25.            }
  26.        }
  27.    }
  28. }
  29.  


Título: Re: RETO divisores de 15000 [JAVA]
Publicado por: trolleoatodos en 3 Septiembre 2013, 10:01 am
Enhorabuena Darhius y encima mas ordenadito xDD


Título: Re: RETO divisores de 15000 [JAVA]
Publicado por: 1mpuls0 en 3 Septiembre 2013, 17:06 pm
Utilizando una función propia de módulo. :P

Código
  1. /*
  2.  * Autor: Darhius929
  3.  */
  4. package basic;
  5.  
  6. public class Dividers {
  7.  
  8.    private static final int LOWER_LIMIT = 1;
  9.    private static final int SUPERIOR_LIMIT = 15000;
  10.    public static void main(String args[]) {
  11.        int divisor3 = 3;
  12.        numbersDivisible(divisor3);
  13.  
  14.        int divisor5 = 5;
  15.        numbersDivisible(divisor5);
  16.  
  17.        int divisor7 = 7;
  18.        numbersDivisible(divisor7);
  19.    }
  20.  
  21.    private static void numbersDivisible(int divisor) {
  22.        for(int number=LOWER_LIMIT; number<SUPERIOR_LIMIT; number++){
  23.            if(module(number,divisor)==0) {
  24.               System.out.println("El n\u00famero " + number + " es divisor de " + divisor);
  25.            }
  26.        }
  27.    }
  28.  
  29.    private static double module(double dividend, double divisor) {
  30.        double remainder = 0.0;
  31.        try {
  32.            remainder = dividend - ((int)(dividend/divisor)*divisor);
  33.        } catch(ArithmeticException ae) {
  34.            ae.printStackTrace();
  35.        }
  36.        return remainder;
  37.    }
  38. }
  39.