27.12.2012 Views

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

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!