{"id":904,"date":"2015-01-01T06:00:02","date_gmt":"2015-01-01T04:00:02","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=904"},"modified":"2016-05-01T20:20:16","modified_gmt":"2016-05-01T18:20:16","slug":"2015-y-los-numeros-con-factorizacion-capicua","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/2015-y-los-numeros-con-factorizacion-capicua\/","title":{"rendered":"2015 y los n\u00fameros con factorizaci\u00f3n capic\u00faa"},"content":{"rendered":"<p>Un n\u00famero <em>tiene factorizaci\u00f3n capic\u00faa<\/em> si puede escribir como un producto de n\u00fameros primos tal que la concatenaci\u00f3n de sus d\u00edgitos forma un n\u00famero capic\u00faa. Por ejemplo, el 2015 tiene factorizaci\u00f3n capic\u00faa ya que 2015 = 13\u00b75\u00b731, los factores son primos y su concatenaci\u00f3n es 13531 que es capic\u00faa.<\/p>\n<p>Definir la sucesi\u00f3n<\/p>\n<pre lang=\"text\">\n   conFactorizacionesCapicuas :: [Int]\n<\/pre>\n<p>formada por los n\u00fameros que tienen factorizaci\u00f3n capic\u00faa. Por ejemplo,<\/p>\n<pre lang=\"text\">\n   ghci> take 20 conFactorizacionesCapicuas\n   [1,2,3,4,5,7,8,9,11,12,16,18,20,25,27,28,32,36,39,44]\n<\/pre>\n<p>Usando conFactorizacionesCapicuas escribir expresiones cuyos valores sean las respuestas a las siguientes preguntas y calcularlas<\/p>\n<ol>\n<li>\u00bfQu\u00e9 lugar ocupa el 2015 en la sucesi\u00f3n?<\/li>\n<li>\u00bfCu\u00e1l fue el anterior a\u00f1o con factorizaci\u00f3n capic\u00faa?<\/li>\n<li>\u00bfCu\u00e1l ser\u00e1 el siguiente a\u00f1o con factorizaci\u00f3n capic\u00faa?<\/li>\n<\/ol>\n<h4>Soluciones<\/h4>\n<pre lang=\"haskell\">\nimport Data.List (permutations)\n\nconFactorizacionesCapicuas :: [Int]\nconFactorizacionesCapicuas =\n    [n | n <- [1..], not (null (factorizacionesCapicua n))]\n\n-- (factorizacionesCapicua n) es la lista de las factorizaciones\n-- capic\u00faas de n. Por ejemplo,\n--    factorizacionesCapicua 2015  ==  [[13,5,31],[31,5,13]]\nfactorizacionesCapicua :: Int -> [[Int]]\nfactorizacionesCapicua n =\n    [xs | xs <- permutations (factorizacion n),\n          esCapicuaConcatenacion xs]\n\n-- (factorizacion n) es la lista de todos los factores primos de n; es\n-- decir, es una lista de n\u00fameros primos cuyo producto es n. Por ejemplo,\n--    factorizacion 300  ==  [2,2,3,5,5]\nfactorizacion :: Int -> [Int]\nfactorizacion n | n == 1    = []\n                | otherwise = x : factorizacion (div n x)\n    where x = menorFactor n\n\n-- (menorFactor n) es el menor factor primo de n. Por ejemplo,\n--    menorFactor 15  ==  3\n--    menorFactor 16  ==  2\n--    menorFactor 17  == 17\nmenorFactor :: Int -> Int\nmenorFactor n = head [x | x <- [2..], rem n x == 0]\n\n-- (esCapicuaConcatenacion xs) se verifica si la concatenaci\u00f3n de los\n-- n\u00fameros de xs es capic\u00faa. Por ejemplo,\n--    esCapicuaConcatenacion [13,5,31]   ==  True\n--    esCapicuaConcatenacion [135,31]    ==  True\n--    esCapicuaConcatenacion [135,21]    ==  False\nesCapicuaConcatenacion :: [Int] -> Bool\nesCapicuaConcatenacion xs = ys == reverse ys\n    where ys = concat (map show xs)\n\n-- El c\u00e1lculo de la 1\u00aa respuesta es\n--    ghci> length (takeWhile (<= 2015) conFactorizacionesCapicuas)\n--    265\n\n-- El c\u00e1lculo de la 2\u00aa respuesta es\n--    ghci> last (takeWhile (<2015) conFactorizacionesCapicuas)\n--    2001\n\n-- El c\u00e1lculo de la 3\u00aa respuesta es\n--    ghci> head (dropWhile (<=2015) conFactorizacionesCapicuas)\n--    2023\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Un n\u00famero tiene factorizaci\u00f3n capic\u00faa si puede escribir como un producto de n\u00fameros primos tal que la concatenaci\u00f3n de sus d\u00edgitos forma un n\u00famero capic\u00faa. Por ejemplo, el 2015 tiene factorizaci\u00f3n capic\u00faa ya que 2015 = 13\u00b75\u00b731, los factores son primos y su concatenaci\u00f3n es 13531 que es capic\u00faa. Definir la sucesi\u00f3n conFactorizacionesCapicuas :: [Int]&#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":[4],"tags":[8,12,30,59,71,134,28,10,141,11,228,6,31,32,34],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/904"}],"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=904"}],"version-history":[{"count":4,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/904\/revisions"}],"predecessor-version":[{"id":1380,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/904\/revisions\/1380"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=904"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=904"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=904"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}