{"id":268,"date":"2018-04-26T08:40:16","date_gmt":"2018-04-26T06:40:16","guid":{"rendered":"http:\/\/clases.jesussoto.es\/?p=268"},"modified":"2018-04-26T08:47:27","modified_gmt":"2018-04-26T06:47:27","slug":"mad-test-de-primalidad","status":"publish","type":"post","link":"https:\/\/curso17.jesussoto.es\/?p=268","title":{"rendered":"MAD: Test de primalidad"},"content":{"rendered":"<p>En la \u00faltima clase vimos el teorema de Euler que nos determina el inverso, cuando existe, de un elemento en $\\mathbb{Z}_n$. Este teorema ten\u00eda un antecedente, que se conoce como el Teorema peque\u00f1o de Fermat:<\/p>\n<blockquote>\n<p>Si $a,p\\in\\mathbb{Z}$ con $p$ primo y $p$ no divide a $a$, entonces $$a^{p-1}\\equiv 1(p)$$<\/p>\n<\/blockquote>\n<p>Consecuentemente si dado un n\u00famero $n$ que no divida a $a$ se cumple $$a^{n-1}\\not\\equiv 1(n)$$<br \/>\nimplicar\u00eda que $n$ no es primo, pues de lo contrario incumplir\u00eda el Teorema peque\u00f1o de Fermat.<\/p>\n<p>Pues bien, este resultado lo podemos utilizar para chequear si un n\u00famero es primo. Este test se denomina test de primalidad de Fermat.<\/p>\n<p>Disponemos de un resultado que nos garantiza si un n\u00famero es primo, el Teorema de Wilson:<\/p>\n<blockquote>\n<p>El n\u00famero $n\\in\\mathbb{Z},\\, n&gt;1$ es primo si, y s\u00f3lo, si $$(n-1)!\\equiv -1(n)$$<\/p>\n<\/blockquote>\n<p>El problema es el c\u00f3mputo del factorial que es trem\u00e9ndamente costoso para n\u00famero muy grandes. Por ese motivo utilizamos los test de primalidad.<\/p>\n<p>Un test de primalidad (o chequeo de primalidad) es un algoritmo que, dado un n\u00famero de entrada $n$, no consigue verificar la hip\u00f3tesis de un teorema cuya conclusi\u00f3n es que $n$ es compuesto.<\/p>\n<p>El test de Fermat nos propone buscar si un n\u00famero es compuesto probando las igualdades $$2^{n-1}\\equiv 1(n),$$ $$3^{n-1}\\equiv 1(n),$$ $$5^{n-1}\\equiv 1(n),&#8230;$$ $$a^{n-1}\\equiv 1(n),$$ hasta encontrar un valor de $1&lt;a&lt;n$ para el que no se cumpla.<\/p>\n<p>Lo que ocurre es que podemos encontrar valores que verifican la igualdad siempre y no por ello son primos: son los conocidos n\u00fameros de Carmichael, o pseudoprimos.<\/p>\n<p>Hay m\u00e1s test de este tipo, son conocidos como test probabil\u00edsticos de primalidad, pues no nos garantizan que es primo; m\u00e1s bien ofrecen una probabilidad de que sea primo.<\/p>\n<p>El test de Fermat puede mejorarse utilizando el criterio de Euler:<\/p>\n<blockquote>\n<p>Si $p\\in\\mathbb{Z}$ es primo y $p$ no divide a $a$, entonces $$a^\\frac{p-1}{2}\\equiv 1(p)\\, \\mbox{ \u00f3, } a^\\frac{p-1}{2}\\equiv -1(p)$$<\/p>\n<\/blockquote>\n<p>El test probabil\u00edstico de primalidad m\u00e1s utilizado es el de Rabin-Miller, basado en el resultado:<\/p>\n<blockquote>\n<p>Sea $p\\in\\mathbb{Z},\\, p&gt;1$ primo impar y $k,m\\in\\mathbb{Z}$, tales que $p-1=2^km$, com $m$ impar. Entonces, para todo entero positivo $a$, menor que $p$, se cumple al menos una de los siguientes resultados:<\/p>\n<ul>\n<li>Alg\u00fan n\u00famero de la serie $a^{2^km},a^{2^{k-1}m},&#8230;,a^{m}$ es congruente con -1 m\u00f3dulo $p$.<\/li>\n<li>$a^m\\equiv 1(p)$<\/li>\n<\/ul>\n<\/blockquote>\n<table id=\"yzpi\" border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"3\" bgcolor=\"#999999\">\n<tbody>\n<tr>\n<td width=\"100%\"><strong>Ejercicio:<\/strong> Verificar que 561 es un n\u00famero de Carmichael<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>En la \u00faltima clase vimos el teorema de Euler que nos determina el inverso, cuando existe, de un elemento en $\\mathbb{Z}_n$. Este teorema ten\u00eda un antecedente, que se conoce como el Teorema peque\u00f1o de Fermat: Si $a,p\\in\\mathbb{Z}$ con $p$ primo y $p$ no divide a $a$, entonces $$a^{p-1}\\equiv 1(p)$$ Consecuentemente si dado un n\u00famero $n$&hellip; <a class=\"more-link\" href=\"https:\/\/curso17.jesussoto.es\/?p=268\">Seguir leyendo <span class=\"screen-reader-text\">MAD: Test de primalidad<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[],"_links":{"self":[{"href":"https:\/\/curso17.jesussoto.es\/index.php?rest_route=\/wp\/v2\/posts\/268"}],"collection":[{"href":"https:\/\/curso17.jesussoto.es\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/curso17.jesussoto.es\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/curso17.jesussoto.es\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/curso17.jesussoto.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=268"}],"version-history":[{"count":1,"href":"https:\/\/curso17.jesussoto.es\/index.php?rest_route=\/wp\/v2\/posts\/268\/revisions"}],"predecessor-version":[{"id":269,"href":"https:\/\/curso17.jesussoto.es\/index.php?rest_route=\/wp\/v2\/posts\/268\/revisions\/269"}],"wp:attachment":[{"href":"https:\/\/curso17.jesussoto.es\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=268"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/curso17.jesussoto.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=268"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/curso17.jesussoto.es\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}