{"id":300,"date":"2014-06-13T07:00:44","date_gmt":"2014-06-13T05:00:44","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=300"},"modified":"2016-05-01T20:24:32","modified_gmt":"2016-05-01T18:24:32","slug":"orbita-prima","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/orbita-prima\/","title":{"rendered":"\u00d3rbita prima"},"content":{"rendered":"<h4>Enunciado<\/h4>\n<pre lang=\"text\">\n-- La \u00f3rbita prima de un n\u00famero n es la sucesi\u00f3n construida de la\n-- siguiente forma: \n--    * si n es compuesto su \u00f3rbita no tiene elementos \n--    * si n es primo, entonces n est\u00e1 en su \u00f3rbita; adem\u00e1s, sumamos n y\n--      sus d\u00edgitos, si el resultado es un n\u00famero primo repetimos el\n--      proceso hasta obtener un n\u00famero compuesto. \n-- Por ejemplo, con el 11 podemos repetir el proceso dos veces\n--    13 = 11+1+1\n--    17 = 13+1+3\n-- As\u00ed, la \u00f3rbita prima de 11 es 11, 13, 17. \n-- \n-- Definir la funci\u00f3n\n--    orbita :: Integer -> [Integer]\n-- tal que (orbita n) es la \u00f3rbita prima de n. Por ejemplo,\n--    orbita 11 == [11,13,17]\n--    orbita 59 == [59,73,83]\n-- Calcular el menor n\u00famero cuya \u00f3rbita prima tiene m\u00e1s de 3 elementos.\n<\/pre>\n<h4>Soluciones<\/h4>\n<pre lang=\"haskell\">\n-- 1\u00aa definici\u00f3n (por recursi\u00f3n)\n-- =============================\n\norbita1 :: Integer -> [Integer]\norbita1 n | not (esPrimo n) = []\n          | otherwise       = n : orbita1 (n + sum (cifras n))\n\nesPrimo :: Integer -> Bool\nesPrimo n = [x | x <- [1..n], n `rem` x == 0] == [1,n] \n\ncifras :: Integer -> [Integer]\ncifras n = [read [x]| x <- show n]\n\n-- El c\u00e1lculo es\n--    ghci> head [x | x <- [1,3..], length (orbita x) > 3]\n--    277\n-- \n--    ghci> orbita 277\n--    [277,293,307,317]\n\n-- 2\u00aa definici\u00f3n (con iterate)\n-- ===========================\n\norbita2 :: Integer -> [Integer]\norbita2 n = takeWhile esPrimo (iterate f n)\n    where f x = x + sum (cifras x)\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Enunciado &#8212; La \u00f3rbita prima de un n\u00famero n es la sucesi\u00f3n construida de la &#8212; siguiente forma: &#8212; * si n es compuesto su \u00f3rbita no tiene elementos &#8212; * si n es primo, entonces n est\u00e1 en su \u00f3rbita; adem\u00e1s, sumamos n y &#8212; sus d\u00edgitos, si el resultado es un n\u00famero primo&#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":[5],"tags":[8,50,11,95,6,31,33,40,34],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/300"}],"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=300"}],"version-history":[{"count":5,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/300\/revisions"}],"predecessor-version":[{"id":690,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/300\/revisions\/690"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=300"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=300"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}