Contar el número de divisores en Java

Hola a todos, hoy os voy a explicar como podemos contar el número de divisores en Java.

Un divisor es aquel número que es divisible por otro, por ejemplo, el número 5 es un divisor del número 20.

Para contar cuantos hay divisores tiene un número, tenemos que recorrer de 1 al número en sí (incluido), usando el operador de módulo comprobaremos si ese número es divisible por el número original.

Tenemos que tener el cuenta que el número puede ser negativo, por lo que lo pasamos a absoluto para no varié el resultado.

Veamos como seria en código:


import java.util.Scanner;


public class Principal {

    public static void main(String[] args) {

        Scanner sn = new Scanner(System.in);
        System.out.println("Introduce un numero");
        int numero = sn.nextInt();
        
        int contador = 0;

        // Recorremos de 1 al número (incluido el propio numero)
        for (int i = 1; i <= Math.abs(numero); i++) {
            // si es divisible entre el número original, sumamos el contador
            if (numero % i == 0) {
                contador++;
            }
        }
        
        System.out.println("El número " + numero + " tiene " + contador + " divisores");
        
    }

}

Este es el resultado:

Podemos hacerlo en una función para que lo podéis reutilizar:



import java.util.Scanner;

public class Principal {

    public static void main(String[] args) {

        Scanner sn = new Scanner(System.in);
        System.out.println("Introduce un numero");
        int numero = sn.nextInt();

        int numDivisores = cuentaDivisores(numero);

        System.out.println("El número " + numero + " tiene " + numDivisores + " divisores");

    }

    public static int cuentaDivisores(int numero) {

        int contador = 0;

        // Recorremos de 1 al número (incluido el propio numero)
        for (int i = 1; i <= Math.abs(numero); i++) {
            // si es divisible entre el número original, sumamos el contador
            if (numero % i == 0) {
                contador++;
            }
        }

        return contador;
    }

}


Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada.