Un algoritmo es una lista finita de pasos que termina y que otra persona puede repetir sin adivinar. No hace falta un lenguaje de programación: el editor de esta página es papel. Lo que no vale es «mirar si se ve primo».
Para un entero n > 1: recorre los enteros d desde 2 hasta el mayor entero cuyo cuadrado no pasa de n. Si alguno divide a n, n es compuesto y paras. Si ninguno divide, n es primo. Basta llegar a la raíz porque, si n = a · b y a es mayor que la raíz, entonces b es menor que la raíz y ya lo habrías visto.
El tope del algoritmo no es un número redondo: es el mayor entero d tal que d² ≤ n. Si n es un cuadrado perfecto, ese entero divide a n y hay que probarlo. Parar uno antes declararía primo a un cuadrado que solo se factoriza con su raíz. Con 49, los divisores propios son 7 y 7. Si te quedas en d = 6, ninguna división entera ha salido exacta y el criterio, mal cortado, diría «primo». No lo es: 7² = 49. El caso fácil, como 35, para pronto porque aparece un divisor pequeño; el caso que enseña el tope es el que no tiene divisor pequeño.
En la ecuación de segundo grado el algoritmo también tiene un corte: el signo del discriminante. D > 0, dos raíces reales distintas; D = 0, una raíz doble; D < 0, ninguna raíz real. No se «redondea D a cero» si sale 1, ni se ignora el cero si sale exacto. Y el numerador es −b, no b: con b = −5, −b vale 5. Escribir b en el numerador cambia el signo de las dos raíces.
Para 29, √29 está entre 5 y 6 porque 5² = 25 y 6² = 36. Hay que probar d = 2, 3 y 5.
29 es primo.
Para 35, √35 está entre 5 y 6 (25 < 35 < 36). Pruebas:
35 es compuesto. El algoritmo para en el 5; no hace falta seguir.
Ecuación x² − 5x + 6 = 0, con a = 1, b = −5, c = 6.
Algoritmo de la fórmula. Discriminante D = b² − 4ac = 25 − 24 = 1. Como D > 0 hay dos raíces reales:
x = (5 ± 1) / 2. Entonces x₁ = 6/2 = 3 y x₂ = 4/2 = 2.
Algoritmo alternativo: buscar el factor. Dos números que sumen 5 y multiplicados den 6: 2 y 3. Luego (x − 2)(x − 3) = x² − 5x + 6. Las raíces son otra vez 2 y 3.
Comprobación en la ecuación: 2² − 5·2 + 6 = 4 − 10 = −6
−6 + 6 = 0 y 3² − 5·3 + 6 = 9 − 15 = −6
−6 + 6 = 0.
Dos algoritmos cortos, con la cuenta escrita, para ver el corte de la raíz y el corte del discriminante.
Si en el paso 3 se toma b = 8 en el numerador, (8 ± 0)/2 = 4 sigue saliendo por casualidad, porque −b y |b| coinciden cuando b es negativo y la raíz es doble y positiva. No es un permiso para cambiar el signo en general. En el ejemplo 2, b = −5 y D = 1: usar b en vez de −b produce −2 y −3, y ninguno anula x² − 5x + 6. El caso D = 0 de este ejemplo no esconde ese fallo; el ejemplo 2 sí lo enseña.
Suma de control del primo: 7 · 7 = 49, y 49 no es 7 · 8. 7 · 8 = 56. Quien «acerca» 49 a 56 para usar el 8 ya no está ejecutando el algoritmo: está cambiando el número.
121 es otro cuadrado, para no quedarse en el 49. 11² = 121 y 10² = 100, así que el algoritmo llega hasta d = 11. Restos: 121 = 2·60 + 1;3 · 40 = 120
120 + 1 = 121
121 = 121;5 · 24 = 120
120 + 1 = 121
121 = 121; 121 = 7·17 + 2 (porque 7·17 = 119);8 · 15 = 120
120 + 1 = 121
121 = 121;121 = 9·13 + 4 (9·13
9·13 + 4 (9·13 = 117);11 · 11 = 121
121 + 0 = 121
121 = 121. Para en el 11. Es compuesto. Quien pare en 10, con todos los restos distintos de 0, declararía primo a 121.
Ecuación distinta de las anteriores: x² − 3x − 10 = 0, a = 1, b = −3, c = −10.4 · 1 = 4
4 · (−10) = −40
9 − −40 = 49
D = 49. √49 = 7. x = (3 ± 7)/2. x₁ = 10/2 = 5 y x₂ = (−4)/2 = −2. Sustitución: 5 · 5 = 25
3 · 5 = 15
25 − 15 = 10
10 − 10 = 0;−2 · −2 = 4
3 · (−2) = −6
4 − −6 = 10
10 − 10 = 0. Factorización: (x − 5)(x + 2) = x² − 3x − 10. El signo de c es negativo y por eso una raíz es negativa. No se tira: anula el polinomio.
Otro entero, el 89, para ver un primo con todos los restos escritos, sin usar el 91 del reto. 9² = 81 y 10² = 100, luego √89 cae entre 9 y 10 y hay que probar d de 2 a 9.
| d | cuenta | resto |
|---|---|---|
| 2 | 2·44 = 88 | 1 |
| 3 | 3·29 = 87 | 2 |
| 4 | 4·22 = 88 | 1 |
| 5 | 5·17 = 85 | 4 |
| 6 | 6·14 = 84 | 5 |
| 7 | 7·12 = 84 | 5 |
| 8 | 8·11 = 88 | 1 |
| 9 | 9·9 = 81 | 8 |
Ningún resto es 0, así que 89 es primo. Parar en d = 7, aunque el resto sea 5, dejaría sin mirar el 8 y el 9. El algoritmo no acaba cuando un resto «ya es pequeño»: acaba cuando se agota el intervalo o cuando un resto es 0.
77 no es el 91 del reto. √77 está entre 8 y 9, porque 8² = 64 y 9² = 81. El algoritmo puede parar antes si aparece un divisor.2 · 38 = 76
76 + 1 = 77
77 = 77; 77 = 3·25 + 2 (75+2);5 · 15 = 75
75 + 2 = 77
77 = 77;7 · 11 = 77
77 + 0 = 77
77 = 77. Para en el 7: 77 = 7·11. No hace falta probar el 8. Comparado con el 89, donde ningún resto fue 0 y hubo que llegar al 9, aquí el criterio acaba en cuanto el resto es cero. Las dos salidas —«primo» y «compuesto»— salen del mismo algoritmo.
Probar solo el 2, el 3 y el 5 en el 35 y, al ver que 2 y 3 no dividen, declarar primo sin llegar al 5. O, en la fórmula, tomar b = 5 en vez de b = −5 y calcular D = 25 + 24. Aquí el término −4ac usa b², que es (+25) igual, pero el numerador es −b, no b: si escribes (b ± √D) / 2 con b = −5 obtienes números negativos que no anulan el polinomio.
En el editor, escribe el algoritmo de primalidad o el de la cuadrática, y debajo una versión alternativa (la factorización, o probar divisores solo entre los primos hasta la raíz). El rótulo inicial se puede borrar.
Por qué: 5 · 5 = 25 y 29 − 25 = 4. El resto no es 0, así que 5 no divide a 29. Ese resto se ata al corte en √29: 52 = 25 no pasa de 29 y 62 = 36 sí pasa, así que el bucle prueba divisores hasta el 5 y se para al pasar de la raíz, no al llegar a 29. Seguir hasta 29 repetiría parejas de factores cuyo factor pequeño ya se habría mirado. Como ningún resto hasta la raíz es 0, 29 es primo.
Por qué: 5 · 7 = 35 exactos. Con un divisor propio encontrado, 35 no es primo. No hace falta mirar el 7: el algoritmo ya ha parado.
Por qué: sustituir es la comprobación.En x = 2:
4 − 10 = −6
−6 + 6 = 0. En x = 3:
9 − 15 = −6
−6 + 6 = 0. Fórmula y factorización no pueden dar raíces distintas si las dos están bien hechas.
Un algoritmo se puede ejecutar a mano. 29 no tiene divisor hasta su raíz, luego es primo. 35 = 5 · 7, luego no lo es. La ecuación x² − 5x + 6 = 0 da 2 y 3 por la fórmula y también por la factorización.
Decide si 91 es primo con el algoritmo de los divisores (√91 está entre 9 y 10). Escribe en el editor cada división que hagas y, al lado, el algoritmo alternativo que usarías para x² − 7x + 12 = 0. Comprueba las raíces sustituyendo.
reto_id: bach1-mates-i-L38
Escribe el desarrollo en este cuadro. Si necesitas un boceto, dibújalo en el lienzo de esta misma página. No se envía a ningún sitio.
Lienzo para el boceto.