Introducción a la teoría de números. Ejemplos y - TEC-Digital
Introducción a la teoría de números. Ejemplos y - TEC-Digital
Introducción a la teoría de números. Ejemplos y - TEC-Digital
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
16 DIVISIBILIDAD<br />
Tercer refinamiento: Tachar mientras p2 ≤ n. k<br />
En el paso k−ésimo hay que tachar los múltiplos <strong>de</strong>l primo p solo si p k 2 ≤ n. En otro caso, nos<br />
k<br />
<strong>de</strong>tenemos ahí. ¿Porque?. En el paso k−ésimo tachamos los múltiplos <strong>de</strong>l primo p k <strong>de</strong>s<strong>de</strong> p 2<br />
k<br />
en a<strong>de</strong><strong>la</strong>nte, así que si p 2<br />
k<br />
EJEMPLO 2.9<br />
> n ya no hay nada que tachar.<br />
Encontrar los primos menores que 20. El proceso termina cuando el cuadrado <strong>de</strong>l mayor<br />
número confirmado como primo es < 20.<br />
1. La lista inicial es {2,3,5,7,9,11,13,15,17,19}<br />
2. Como 3 2 ≤ 20, tachamos los múltiplos <strong>de</strong> 3 <strong>de</strong>s<strong>de</strong> 3 2 = 9 en a<strong>de</strong><strong>la</strong>nte:<br />
3. Como 5 2 > 20 el proceso termina aquí.<br />
4. Primos < 20 : {2,3,5,7,11,13,17,19}<br />
2.2.1 Algoritmo e implementación.<br />
{2,3,5,7,✁9,11,13, ✚15,17,19}<br />
En este contexto, a/b división entera, es <strong>de</strong>cir, a/b es el cociente <strong>de</strong> dividir a y b.<br />
1. Como ya vimos, para co<strong>la</strong>r los primos en el conjunto {2,3,...,n} solo consi<strong>de</strong>ramos los<br />
impares:<br />
{2i + 3 : i = 0,1,...�(n − 3)/2�} = {3,5,7,9,...}<br />
2. Por cada primo p = 2i + 3 (tal que p 2 < n), <strong>de</strong>bemos eliminar los múltiplos impares <strong>de</strong> p<br />
menores que n, a saber<br />
(2k + 1)p = (2k + 1)(2i + 3), k = i + 1,i + 2,...<br />
Observe que si k = i + 1 entonces el primer múltiplo en ser eliminado es p 2 = (2i + 3)(2i +<br />
3), como <strong>de</strong>be ser.<br />
Esto nos dice que para implementar el algoritmo solo necesitamos un arreglo (booleano) <strong>de</strong><br />
tamaño “quo(n-3,2)”. En Java se pone “(n-3)/2” y en VBA se pone “(n-3)\2”.<br />
El arreglo lo l<strong>la</strong>mamos EsPrimo[i], i=0,1,...,(n-3)/2.Cada entrada <strong>de</strong>l arreglo “EsPrimo[i]”<br />
indica si el número 2i + 3 es primo o no.