¿Como imprimir todos los numeros divisibles de un numero ingresado por teclado? Java For

publicado por: Anonymous

Holaa buenas , estoy haciendo un programa donde debo realizar la division de dos numeros y si da 0 evaluar si el primer numero es divisible por el divisor , de ser asi imprimir todos los numeros divisible del divisor.
Hasta el momento hice para numeros pares e impares , pero solo funciona si ingreso el 2 o el 3 , que pasa si yo quiero ingresar un 7 o un 8 , no me sale sus divisores , como podria hacer eso? , es decir , quiero ingresar cualquier numero y que me de sus primeros 10 numeros divisibles .Espero que haber sido claro . Ahora les dejo lo que hice :

public class Divisibles {

public static void main(String[] args) {

    Scanner teclado = new Scanner (System.in);
     int numero1 =0;
     int numero2 = 0;
     int par = 0;
     int impar = 0;
     int suma1=0;
     int suma2=0;
     System.out.println("Ingrese numero : ");
     numero1 = teclado.nextInt();
    System.out.println("Ingrese otro :");
    numero2 = teclado.nextInt();

     for(int i = 0 ; i<10 ; i++) {

         if(numero1%numero2==0) {

            if(numero2%2==0) {

                par+=2; //tuve que realizar esto por que sino no 
                        //salian numeros como el 16 o 18.
                suma1=par;

                System.out.println(suma1);

            }

            else if(numero2%3==0) { 


                impar+=3; //lo mismo aca le sume 3 por que no 
                          //salian numeros como el 9
                suma2=impar;

                System.out.println(suma2);
            }




         }




     }


}

}

Bueno se que este programa va a funcionar solo para numeros divisibles por 2 o 3 , asi que si tienen alguna idea de lo que le podria cambiar , gracias 🙂

solución

Este código te obtiene hasta diez factores de un número dado si éste los tuviera.

Lo que hace es buscar el resto (modulo) de la división entre el número dado y todos los números a partir de 1. Si el modulo es igual a cero (no sobra nada en la división), significa que el número es divisible entre i.

El bucle tiene un if interior para detenerlo cuando totalFactors llegue a diez, para cumplir tu requerimiento de que no obtenga más de 10 factores.

    int totalFactors=0;
    int theNumber=96;
    for(int i = 1; i <= theNumber; ++i) {
        /*Verificamos si no sobra nada en la división*/
        if (theNumber % i == 0) {
            totalFactors++;
            System.out.printf("%02d. %dn" , totalFactors,i);
            /*Detenemos el bucle cuando haya 10 factores*/
            if (totalFactors==10){
                break;
            }
        }
    }

Salida:

Los primeros diez factores de 96, usado como número de prueba serían:

01. 1
02. 2
03. 3
04. 4
05. 6
06. 8
07. 12
08. 16
09. 24
10. 32

Código de prueba

VER DEMO EN REXTESTER

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *