{"id":9680,"date":"2014-03-14T07:55:08","date_gmt":"2014-03-14T12:55:08","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/ccpg1001\/?p=9680"},"modified":"2026-04-05T17:14:10","modified_gmt":"2026-04-05T22:14:10","slug":"s1eva2008ti_t1-teorema-de-wilson","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-s1eva10\/s1eva2008ti_t1-teorema-de-wilson\/","title":{"rendered":"s1Eva2008TI_T1 Teorema de Wilson"},"content":{"rendered":"\n<p><strong>Ejercicio<\/strong>:\u00a0 <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-1eva10\/1eva2008ti_t1-teorema-de-wilson\/\" data-type=\"post\" data-id=\"3170\">1Eva2008TI_T1 Teorema de Wilson<\/a><\/p>\n\n\n\n<p>\u201cUn n\u00famero <strong>p<\/strong> es primo si y solo si el factorial (<strong>p<\/strong>-1)! + 1 es divisible por <strong>p<\/strong>\u201d.<\/p>\n\n\n\n<p>El ejercicio se divide en dos partes principales:<br>- determinar si un n\u00famero es primo<br>- Si es primo, validar lo que indica Wilson<\/p>\n\n\n\n<p>Para la primera parte, se usa el concepto de residuo de la divisi\u00f3n para determinar si el n\u00famero es primo.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><span style=\"color: #ff0000\"># revisa esprimo <\/span>\nesprimo = 1\ndivisor = 2\n<span style=\"color: #d35400\">while<\/span> <span style=\"color: #d35400\">not<\/span>(divisor&gt;=n <span style=\"color: #d35400\">or<\/span> esprimo==0):\n    r = n%divisor\n    <span style=\"color: #d35400\">if<\/span> (r == 0):\n        esprimo = 0\n    divisor = divisor + 1<\/code><\/pre>\n\n\n\n<p>La bandera usada es \"esprimo\" que inicia con el supuesto de ser verdadero \u00f3 1.<\/p>\n\n\n\n<p>Solo si el n\u00famero resulta ser primo, se aplican las operaciones de Wilson. Primero determinando el valor del factorial,<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wilson = -1\n<span style=\"color: #d35400\">if<\/span> esprimo == 1:\n    \n    <span style=\"color: #ff0000\"># factorial<\/span>\n    factor = 1\n    i = 1\n    <span style=\"color: #d35400\">while<\/span> <span style=\"color: #d35400\">not<\/span>(i&gt;=n):\n        factor = factor*i\n        i = i + 1<\/code><\/pre>\n\n\n\n<p>y luego revisar Wilson<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    <span style=\"color: #ff0000\"># revisa Wilson <\/span>\n    residuo = (factor + 1) % n\n    <span style=\"color: #d35400\">if<\/span> residuo == 0:\n        wilson = 1\n    <span style=\"color: #d35400\">else<\/span>:\n        wilson = 0<\/code><\/pre>\n\n\n\n<p>Se a\u00f1aden los bloques de ingreso y salida para completar el algoritmo<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Algoritmo en Python<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# ICM00794-Fundamentos de Computaci\u00f3n - FCNM-ESPOL\n# 1Eva_IT2008_T1 Teorema de Wilson\n\n# INGRESO\nn = int(input('ingrese numero primo: '))\nwhile not(n&gt;0):\n    n = int(input('ingrese numero positivo: '))\n\n# PROCEDIMIENTO\n\n# revisa esprimo \nesprimo = 1\ndivisor = 2\nwhile not(divisor&gt;=n or esprimo==0):\n    r = n%divisor\n    if (r == 0):\n        esprimo = 0\n    divisor = divisor + 1\n\nwilson = -1\nif esprimo == 1:\n    \n    # factorial\n    factor = 1\n    i = 1\n    while not(i&gt;=n):\n        factor = factor*i\n        i = i + 1\n    \n    # revisa Wilson \n    residuo = (factor + 1) % n\n    if residuo == 0:\n        wilson = 1\n    else:\n        wilson = 0\n\n# SALIDA\nprint('cumple Wilson: ', wilson)\n<\/pre><\/div>\n\n\n<p>resultado del algoritmo<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ingrese numero primo: 7\ncumple Wilson:  1\n&gt;&gt;&gt; \n== RESTART: D:\\Ejemplos\\unprograma.py ==\ningrese numero primo: 13\ncumple Wilson:  1\n&gt;&gt;&gt; \n== RESTART: D:\\Ejemplos\\unprograma.py ==\ningrese numero primo: 8\ncumple Wilson:  -1\n&gt;&gt;&gt; <\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Ejercicio:\u00a0 1Eva2008TI_T1 Teorema de Wilson \u201cUn n\u00famero p es primo si y solo si el factorial (p-1)! + 1 es divisible por p\u201d. El ejercicio se divide en dos partes principales:- determinar si un n\u00famero es primo- Si es primo, validar lo que indica Wilson Para la primera parte, se usa el concepto de residuo [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-fp-ejemplos","format":"standard","meta":{"footnotes":""},"categories":[125],"tags":[58,157],"class_list":["post-9680","post","type-post","status-publish","format-standard","hentry","category-fp-s1eva10","tag-ejemplos-python","tag-fundamentos-programacion"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/9680","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/comments?post=9680"}],"version-history":[{"count":4,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/9680\/revisions"}],"predecessor-version":[{"id":23566,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/9680\/revisions\/23566"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=9680"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=9680"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=9680"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}