{"id":5708,"date":"2020-03-20T08:04:23","date_gmt":"2020-03-20T06:04:23","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=5708"},"modified":"2020-03-27T22:38:53","modified_gmt":"2020-03-27T20:38:53","slug":"primos-magnanimos","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/primos-magnanimos\/","title":{"rendered":"Primos magn\u00e1nimos"},"content":{"rendered":"<p>Un <a href=\"http:\/\/bit.ly\/33wo2ZP\">n\u00famero magn\u00e1nimo<\/a> es un n\u00famero tal que las sumas obtenidas insertando un \u00ab+\u00bb entre sus d\u00edgitos en cualquier posici\u00f3n son n\u00fameros primos. Por ejemplo, 4001 es un n\u00famero magn\u00e1nimo porque los n\u00fameros 4+001=5, 40+01=41 y 400+1=401 son primos.<\/p>\n<p>Definir las funciones<\/p>\n<pre lang=\"text\">\n   esMagnanimo :: Integer -> Bool\n   primosMagnanimos :: [Integer]\n<\/pre>\n<p>tales que<\/p>\n<ul>\n<li>(esMagnanimo n) se verifica si n es un n\u00famero magn\u00e1nimo. Por ejemplo, <\/li>\n<\/ul>\n<pre lang=\"text\">\n     esMagnanimo 4001  ==  True\n     esMagnanimo 2019  ==  False\n<\/pre>\n<ul>\n<li>primosMagnanimos es la lista de los n\u00fameros primos magn\u00e1nimos. Por ejemplo,<\/li>\n<\/ul>\n<pre lang=\"text\">\n     \u03bb> take 20 primosMagnanimos\n     [2,3,5,7,11,23,29,41,43,47,61,67,83,89,101,227,229,281,401,443]\n<\/pre>\n<h4>Soluciones<\/h4>\n<pre lang=\"haskell\">\nimport Data.Numbers.Primes (isPrime, primes)\n\nesMagnanimo :: Integer -> Bool\nesMagnanimo n =\n  all isPrime [x + y | (x, y) <- divisionesNumero n]\n\n-- (divisionesNumero n) es la lista de las divisiones de n en dos\n-- n\u00fameros. Por ejemplo,\n--    divisionesNumero 1234  ==  [(1,234),(12,34),(123,4)]\n--    divisionesNumero 234   ==  [(2,34),(23,4)]\n--    divisionesNumero 34    ==  [(3,4)]\n--    divisionesNumero 4     ==  []\ndivisionesNumero :: Integer -> [(Integer,Integer)]\ndivisionesNumero n =\n  [(read xs, read ys) | (xs,ys) <- divisiones (show n)]\n\n-- (divisiones xs) es la lista de las divisiones de xs en dos listas no\n-- vac\u00edas. Por ejemplo,\n--    divisiones \"abcd\"  ==  [(\"a\",\"bcd\"),(\"ab\",\"cd\"),(\"abc\",\"d\")]\n--    divisiones \"bcd\"   ==  [(\"b\",\"cd\"),(\"bc\",\"d\")]\n--    divisiones \"cd\"    ==  [(\"c\",\"d\")]\n--    divisiones \"d\"     ==  []\n--    divisiones \"\"      ==  []\ndivisiones :: [a] -> [([a],[a])]\ndivisiones []     = []\ndivisiones [_]    = []\ndivisiones (x:xs) = ([x],xs) : [(x:is,ds) | (is,ds) <- divisiones xs]\n\nprimosMagnanimos :: [Integer]\nprimosMagnanimos = filter esMagnanimo primes\n<\/pre>\n<h4>Otras soluciones<\/h4>\n<ul>\n<li>Se pueden escribir otras soluciones en los comentarios.\n<li>El c\u00f3digo se debe escribir entre una l\u00ednea con &#60;pre lang=&quot;haskell&quot;&#62; y otra con &#60;\/pre&#62;\n<\/ul>\n<h4>Pensamiento<\/h4>\n<blockquote><p>\n\"Existe una distinci\u00f3n entre lo que se puede llamar un problema y lo que  puede considerar un ejercicio. Este \u00faltimo sirve para entrenar al  en alguna t\u00e9cnica o procedimiento, y requiere poco o ning\u00fan  original. A diferencia de un ejercicio, un problema, si es apropiado para  nivel, debe requerir pensamiento por parte del estudiante. Es imposible exagerar la importancia de los problemas en las matem\u00e1ticas. Es por medio de los problemas que las matem\u00e1ticas se desarrollan y se levantan por s\u00ed mismas. Cada nuevo descubrimiento en matem\u00e1ticas es el resultado de un intento de resolver alg\u00fan problema.\" <\/p>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Howard_Eves\">Howard Eves<\/a>.\n<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Un n\u00famero magn\u00e1nimo es un n\u00famero tal que las sumas obtenidas insertando un \u00ab+\u00bb entre sus d\u00edgitos en cualquier posici\u00f3n son n\u00fameros primos. Por ejemplo, 4001 es un n\u00famero magn\u00e1nimo porque los n\u00fameros 4+001=5, 40+01=41 y 400+1=401 son primos. Definir las funciones esMagnanimo :: Integer -> Bool primosMagnanimos :: [Integer] tales que (esMagnanimo n) se&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"footnotes":"","_jetpack_memberships_contains_paid_content":false},"categories":[7],"tags":[41,8,38,174,11,95,6,33],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/5708"}],"collection":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/comments?post=5708"}],"version-history":[{"count":3,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/5708\/revisions"}],"predecessor-version":[{"id":5741,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/5708\/revisions\/5741"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=5708"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=5708"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=5708"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}