La operación módulo, se utiliza muy a menudo para saber la congruencia de dos números.
Un ejemplo:
Imagina un señor que tiene un huerto y quiere plantar naranjos, ha comprado 67 y quiere plantar 13 por línea... ¿tendrá líneas completas?.
si (67 módulo 13) = 0 luego
mensaje = "si líneas completas."
sino
mensaje "la última línea tiene sólo " + (67 modulo 13) + " árboles..."
fin si
Otro ejemplo:
El señor tras plantar los naranjos, quiere ahora plantar limoneros, harto de tener solo dos árboles en una línea, decide comprar sólo los que necesite parta tener líneas completas.
...pero no lo tiene fácil, porque la tienda le vende limoneros sólo de 5 o 5, ¿cuántos (árboles) tendrá que comprar ahora (como mínimo), para tener líneas completas?
- Solución: Dado que tiene 13 por línea y solo 2 en la última, necesita comprar (13-2) + 'x' lineas de 13, tal que la suma de ellos sea múiltiplo de 5.
n=0 //n empieza valiendo 0 por si fuera el caso que naranjos den líneas completas, pero si a pesar de ello
// se quisiera comprar si o sí limoneros, debería empezar valiendo 5.
Hacer mientras ((n - (13-2)) modulo 13) distinto de 0 //en vez de (13-2), lo razonable sería poner ((13 - (naranjos modulo 13)
n +=5
repetir
y finalmente confirmamos que sea cierto:
//67 era el número previo, 13 siguen siendo los árboles en cada línea
// es decir naranjos + limoneros hacen líneas completas?
Si ((67 + n) módulo 13) = 0 luego
mensaje = "si líneas completas."
sino
mensaje "pués no..."
fin si
El resultado final es que deberá comprar 50 limoneros... así tendrá 9 líneas de 13 árboles.
Finalmenter la congrencia consiste en que dos números tengan el mismo resto dados un divisor común.
Por ejemplo:
buleano = funcion Congruencia(valor1, valor2, divisor)
devolver ((valor1 modulo divisor) = (valor2 modulo divisor))
Fin funcion
Un ejemplo el día 122 del año es el mismo día que el 257 del año?
Mensaje = Congruencia(122, 257, 7) //porque 7 días tiene la semana,
// no importa que día sea en concreto, cada 7 días coincidirán.. esto es, el día 1º del año, será el mismo que el 8º, el 15º, el 22º, etc...
Y si no lo es, cuál sería el siguiente dia congruente con el 122º?...
n = 0
Hacer mientras Congruencia(122, 257 + n, 7) = FALSE
n += 1
Repetir
Mensaje (257 + n)
Puede ser optimizado para no requerir un bucle, te lo dejo como tarea...