{"id":1188,"date":"2015-03-11T07:07:11","date_gmt":"2015-03-11T05:07:11","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=1188"},"modified":"2021-04-25T16:18:49","modified_gmt":"2021-04-25T14:18:49","slug":"numeros-como-sumas-de-primos-1-consecutivos","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/numeros-como-sumas-de-primos-1-consecutivos\/","title":{"rendered":"N\u00fameros como sumas de primos consecutivos"},"content":{"rendered":"<p>En el art\u00edculo <a href=\"http:\/\/bit.ly\/19840rs\">Integers as a sum of consecutive primes in 2,3,4,.. ways<\/a>  se presentan n\u00fameros que se pueden escribir como sumas de primos consecutivos de varias formas. Por ejemplo, el 41 se puede escribir de dos formas distintas<\/p>\n<pre lang=\"text\">\n   41 =  2 +  3 +  5 + 7 + 11 + 13\n   41 = 11 + 13 + 17\n<\/pre>\n<p>el 240 se puede escribir de tres formas<\/p>\n<pre lang=\"text\">\n   240 =  17 +  19 + 23 + 29 + 31 + 37 + 41 + 43\n   240 =  53 +  59 + 61 + 67\n   240 = 113 + 127\n<\/pre>\n<p>y el 311 se puede escribir de 4 formas<\/p>\n<pre lang=\"text\">\n   311 =  11 +  13 +  17 + 19 + 23 + 29 + 31 + 37 + 41 + 43 + 47\n   311 =  31 +  37 +  41 + 43 + 47 + 53 + 59\n   311 =  53 +  59 +  61 + 67 + 71\n   311 = 101 + 103 + 107 \n<\/pre>\n<p>Definir la funci\u00f3n<\/p>\n<pre lang=\"text\">\n   sumas :: Integer -> [[Integer]]\n<\/pre>\n<p>tal que (sumas x) es la lista de las formas de escribir x como suma de dos o m\u00e1s n\u00fameros primos consecutivos. Por ejemplo,<\/p>\n<pre lang=\"text\">\n   ghci> sumas 41\n   [[2,3,5,7,11,13],[11,13,17]]\n   ghci> sumas 240\n   [[17,19,23,29,31,37,41,43],[53,59,61,67],[113,127]]\n   ghci> sumas 311\n   [[11,13,17,19,23,29,31,37,41,43,47],[31,37,41,43,47,53,59],\n    [53,59,61,67,71],[101,103,107]]\n   ghci> maximum [length (sumas n) | n <- [1..600]]\n   4\n<\/pre>\n<h4>Soluciones<\/h4>\n<pre lang=\"haskell\">\nimport Data.Numbers.Primes (primes)\nimport Data.List (span)\n\nsumas :: Integer -> [[Integer]]\nsumas x = [ys | n <- takeWhile (< x) primes, \n                let ys = sumaDesde x n,\n                not (null ys)]\n\n-- (sumaDesde x n) es la lista de al menos dos n\u00fameros primos\n-- consecutivos a partir del n\u00famero primo n cuya suma es x, si existen y\n-- la lista vac\u00eda en caso contrario. Por ejemplo,\n--    sumaDesde 15 3  ==  [3,5,7]\n--    sumaDesde  7 3  ==  []\nsumaDesde :: Integer -> Integer -> [Integer]\nsumaDesde x n | x == y    = take (1 + length us) ys\n              | otherwise = []\n    where ys       = dropWhile (<n) primes\n          (us,y:_) = span (<x) (scanl1 (+) ys)\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>En el art\u00edculo Integers as a sum of consecutive primes in 2,3,4,.. ways se presentan n\u00fameros que se pueden escribir como sumas de primos consecutivos de varias formas. Por ejemplo, el 41 se puede escribir de dos formas distintas 41 = 2 + 3 + 5 + 7 + 11 + 13 41 = 11&#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,28,181,141,11,173,252,60,47,34],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/1188"}],"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=1188"}],"version-history":[{"count":5,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/1188\/revisions"}],"predecessor-version":[{"id":1368,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/1188\/revisions\/1368"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=1188"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=1188"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=1188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}