{"id":8107,"date":"2014-03-24T07:55:42","date_gmt":"2014-03-24T12:55:42","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/ccpg1001\/?p=8107"},"modified":"2026-04-05T17:38:57","modified_gmt":"2026-04-05T22:38:57","slug":"s1eva2013ti_t1-primos-gemelos","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-s1eva20\/s1eva2013ti_t1-primos-gemelos\/","title":{"rendered":"s1Eva2013TI_T1 Primos gemelos"},"content":{"rendered":"\n<p><em><strong>Ejercicio<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-1eva20\/1eva2013ti_t1-primos-gemelos\/\" data-type=\"post\" data-id=\"3252\">1Eva2013TI_T1 Primos gemelos<\/a><\/p>\n\n\n\n<p>Para facilitar el ejercicio, pues no se dispone de una lista de n\u00fameros primos, se inicia generando usa <em><strong>secuencia<\/strong> <\/em>ordenada de <strong>n\u00fameros naturales<\/strong> a partir del <strong>2<\/strong> hasta el n\u00famero <strong>n<\/strong> donde se desea realizar la observaci\u00f3n. <strong><br><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><span style=\"color: #ff0000\"># PROCEDIMIENTO<\/span>\n<span style=\"color: #ff0000\"># intervalo de b\u00fasqueda de n\u00fameros primos<\/span>\nsecuencia = np.arange(2,n+1,1)\ntamano = <span style=\"color: #ff00ff\">len<\/span>(secuencia)\n\n<span style=\"color: #ff0000\"># supone que todos son primos<\/span>\ncumple = np.ones(tamano, dtype=<span style=\"color: #ff00ff\">int<\/span>)<\/code><\/pre>\n\n\n\n<p>Se simplifica el procedimiento de generar la secuencia usando la funci\u00f3n de Numpy para generar un rango entre un intervalo [a,b) y dando el incremento: np.arange(a,b,incremento). Siendo un lado del intervalo no incluyente, pues se define con par\u00e9ntesis, se a\u00f1ade el l\u00edmite usando n+1.<\/p>\n\n\n\n<p>Sobre la <strong>secuencia<\/strong>, se usa un algoritmo de <strong>b\u00fasqueda de n\u00fameros primos<\/strong> realizado en clase para obtener un vector que tenga <strong>solo n\u00fameros primos<\/strong>. Otro ejemplo como repaso, puede revisar el ejercicio de la <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-evalua\/fp-1e10\/1eva2008ti_t2-criba-de-eratostenes\/\" data-type=\"post\" data-id=\"3172\">Criba de Erat\u00f3stenes<\/a>.<\/p>\n\n\n\n<p>La b\u00fasqueda de <strong>primos gemelos<\/strong> consiste en comparar dos n\u00fameros consecutivo del vector <strong>soloprimos<\/strong>. Si la diferencia entre ellos es 2, se encontraron los n\u00fameros buscados. La respuesta se puede dar por medio de un nuevo vector o lista, o semejante al ejercicio de la Criba de Erat\u00f3stenes se puede usar un arreglo de banderas.<\/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_IT2013_T1 Primos gemelos\nimport numpy as np\n\n# INGRESO\nn = int(input('l\u00edmite n: '))\n\n# PROCEDIMIENTO\n# intervalo de b\u00fasqueda de n\u00fameros primos\nsecuencia = np.arange(2,n+1,1)\ntamano = len(secuencia)\n\n# supone que todos son primos\ncumple = np.ones(tamano, dtype=int)\n\n# revisa cada n\u00famero de secuencia\nposicion = 0\nwhile (posicion&lt;tamano):\n    n = secuencia&#x5B;posicion]\n    \n    # PROCEDIMIENTO esprimo \n    esprimo = 1\n    divisor = 2\n    while not(divisor&gt;=n or esprimo==0):\n        r = n%divisor\n        if (r == 0):\n            esprimo = 0\n        divisor = divisor + 1\n        \n    cumple&#x5B;posicion] = esprimo\n    posicion = posicion + 1\n\ncuantos = np.sum(cumple)\nsoloprimos = np.zeros(cuantos,dtype=int)\n\n# separa solo los primos\nposicion = 0\ni = 0\nwhile not(posicion&gt;=tamano):\n    if (cumple&#x5B;posicion]==1):\n        soloprimos&#x5B;i] = secuencia&#x5B;posicion]\n        i = i + 1\n    posicion = posicion + 1\n\n# SALIDA\n\n# BUSCA GEMELOS\ni = 0\nwhile not(i&gt;=(cuantos-1)):\n    sigue = i + 1\n    diferencia = soloprimos&#x5B;sigue] - soloprimos&#x5B;i]\n    if (diferencia==2):\n        print('pareja gemelo: ')\n        print(soloprimos&#x5B;i],soloprimos&#x5B;sigue])\n    i = i + 1\n    \n# revisando resultados\nprint('secuencia: ', secuencia)\nprint('cumple:    ', cumple)\nprint('soloprimos:', soloprimos)\n<\/pre><\/div>\n\n\n<p>resultado del algoritmo<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pareja gemelo: \n3 5\npareja gemelo: \n5 7\nsecuencia  &#091;2 3 4 5 6 7 8 9]\ncumple:    &#091;1 1 0 1 0 1 0 0]\nsoloprimos: &#091;2 3 5 7]\n&gt;&gt;&gt; <\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 1Eva2013TI_T1 Primos gemelos Para facilitar el ejercicio, pues no se dispone de una lista de n\u00fameros primos, se inicia generando usa secuencia ordenada de n\u00fameros naturales a partir del 2 hasta el n\u00famero n donde se desea realizar la observaci\u00f3n. Se simplifica el procedimiento de generar la secuencia usando la funci\u00f3n de Numpy para [&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":[130],"tags":[58,157],"class_list":["post-8107","post","type-post","status-publish","format-standard","hentry","category-fp-s1eva20","tag-ejemplos-python","tag-fundamentos-programacion"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/8107","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=8107"}],"version-history":[{"count":6,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/8107\/revisions"}],"predecessor-version":[{"id":23618,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/8107\/revisions\/23618"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=8107"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=8107"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=8107"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}