7. Divisibilidad, múltiplos y divisores

La divisibilidad permite saber si una cantidad se reparte exactamente. En programación se usa para validar números, detectar pares e impares, organizar ciclos y resolver problemas con restos.

7.1 Introducción

Cuando dividimos dos números enteros, puede ocurrir que la división sea exacta o que sobre un resto. La divisibilidad estudia justamente cuándo un número puede dividirse por otro sin dejar resto.

Este concepto es muy útil en programación. Permite saber si un número es par, si una posición corresponde a cierto grupo, si una tarea debe ejecutarse cada cierta cantidad de pasos o si un valor cumple una regla determinada.

En JavaScript, el operador clave para estos problemas es %, conocido como operador módulo o resto.

7.2 Qué significa que un número sea divisible por otro

Decimos que un número a es divisible por un número b si al dividir a / b el resto es 0.

12 es divisible por 3 porque 12 / 3 = 4 y no sobra nada.

En cambio, 14 no es divisible por 3 porque 14 / 3 deja resto.

console.log(12 % 3);
console.log(14 % 3);

Si el resultado del operador % es 0, la división es exacta.

7.3 El operador módulo en JavaScript

El operador % devuelve el resto de una división. No devuelve el cociente, sino lo que sobra luego de repartir.

Expresión División Resto
10 % 2 10 dividido por 2 0
10 % 3 10 dividido por 3 1
10 % 4 10 dividido por 4 2
10 % 6 10 dividido por 6 4
console.log(10 % 2);
console.log(10 % 3);
console.log(10 % 4);
console.log(10 % 6);

7.4 Detectar números pares e impares

Un número entero es par si es divisible por 2. Si al dividirlo por 2 el resto es 0, es par; si el resto es 1, es impar.

const numero = 17;

if (numero % 2 === 0) {
  console.log("Es par");
} else {
  console.log("Es impar");
}

Esta validación aparece en juegos, tablas, alternancia de estilos, turnos y problemas de lógica.

7.5 Qué es un múltiplo

Un múltiplo de un número se obtiene al multiplicarlo por un entero. Por ejemplo, los múltiplos de 5 son:

0, 5, 10, 15, 20, 25, 30, ...

Un número es múltiplo de 5 si se puede escribir como 5 × algún entero.

const numero = 35;

if (numero % 5 === 0) {
  console.log("Es múltiplo de 5");
} else {
  console.log("No es múltiplo de 5");
}

7.6 Generar múltiplos con un ciclo

En programación podemos generar múltiplos repitiendo una multiplicación o avanzando de a saltos dentro de un ciclo.

const base = 4;

for (let i = 1; i <= 8; i++) {
  console.log(base * i);
}

Este código muestra los primeros ocho múltiplos positivos de 4.

7.7 Qué es un divisor

Un divisor de un número es otro número que lo divide exactamente. Por ejemplo, 3 es divisor de 12 porque 12 dividido por 3 no deja resto.

Divisores de 12: 1, 2, 3, 4, 6 y 12.
const numero = 12;
const posibleDivisor = 3;

if (numero % posibleDivisor === 0) {
  console.log("Es divisor");
} else {
  console.log("No es divisor");
}

7.8 Encontrar todos los divisores de un número

Para encontrar divisores, podemos probar todos los números desde 1 hasta el número original y quedarnos con los que dejan resto 0.

const numero = 24;
const divisores = [];

for (let i = 1; i <= numero; i++) {
  if (numero % i === 0) {
    divisores.push(i);
  }
}

console.log(divisores);

Este algoritmo es simple y suficiente para números pequeños. Más adelante, al estudiar números primos y factorización, veremos formas de razonar mejor sobre divisores.

7.9 Criterios básicos de divisibilidad

Algunos divisores pueden detectarse con reglas rápidas. Estas reglas son útiles para cálculo mental y también para entender validaciones simples.

Divisor Criterio Ejemplo
2 El número termina en cifra par. 48 es divisible por 2.
3 La suma de sus cifras es múltiplo de 3. 123: 1 + 2 + 3 = 6.
5 El número termina en 0 o 5. 75 es divisible por 5.
10 El número termina en 0. 120 es divisible por 10.

En programación normalmente usamos el operador módulo porque es directo y menos propenso a errores.

7.10 Validar múltiplos con funciones

Cuando una regla se repite, conviene convertirla en una función. Así el código queda más claro y reutilizable.

function esMultiplo(numero, base) {
  return numero % base === 0;
}

console.log(esMultiplo(30, 5));
console.log(esMultiplo(31, 5));
console.log(esMultiplo(42, 7));

La función devuelve true si el número es múltiplo de la base y false en caso contrario.

7.11 Validar divisores con funciones

También podemos crear una función para saber si un valor es divisor de otro. Es importante evitar la división por cero, porque cero no puede ser divisor.

function esDivisor(numero, divisor) {
  if (divisor === 0) {
    return false;
  }

  return numero % divisor === 0;
}

console.log(esDivisor(20, 4));
console.log(esDivisor(20, 6));
console.log(esDivisor(20, 0));

Esta protección evita resultados incorrectos cuando el divisor viene de una entrada externa.

7.12 Aplicación: alternar comportamiento

El módulo se usa mucho para alternar acciones. Por ejemplo, podemos mostrar una etiqueta distinta según si una fila es par o impar.

for (let fila = 1; fila <= 6; fila++) {
  if (fila % 2 === 0) {
    console.log("Fila par");
  } else {
    console.log("Fila impar");
  }
}

La misma idea puede aplicarse a turnos, colores alternados, patrones visuales o distribución de tareas.

7.13 Aplicación: ejecutar algo cada cierta cantidad de pasos

Otra aplicación frecuente es ejecutar una acción cada cierto intervalo. Por ejemplo, mostrar un mensaje cada 3 iteraciones.

for (let paso = 1; paso <= 10; paso++) {
  if (paso % 3 === 0) {
    console.log("Acción especial en el paso " + paso);
  }
}

Este patrón aparece en animaciones, juegos, procesamiento por lotes y tareas programadas.

7.14 Errores comunes

  • Confundir división / con resto %.
  • Creer que a % b devuelve el cociente de la división.
  • No validar que el divisor sea distinto de cero.
  • Usar módulo con números decimales cuando el problema realmente requiere enteros.
  • Olvidar que numero % 2 === 0 es una prueba de paridad para enteros.
console.log(17 / 5);
console.log(17 % 5);
console.log(17 % 2);

7.15 Qué debes recordar de este tema

  • Un número es divisible por otro si la división deja resto 0.
  • Un múltiplo se obtiene multiplicando un número por un entero.
  • Un divisor divide a otro número exactamente.
  • En JavaScript, el operador % devuelve el resto de una división.
  • La expresión numero % 2 === 0 permite detectar números pares.
  • El módulo sirve para validar reglas, alternar comportamientos y ejecutar acciones por intervalos.
  • Conviene validar divisores para evitar operaciones inválidas.

7.16 Conclusión

Divisibilidad, múltiplos y divisores son conceptos simples, pero muy útiles en programación. El operador módulo permite convertir estas ideas matemáticas en condiciones concretas para tomar decisiones dentro de un programa.

En el próximo tema estudiaremos números primos y factorización, dos conceptos que se apoyan directamente en la idea de divisor.