{"id":2568,"date":"2016-11-14T06:00:17","date_gmt":"2016-11-14T04:00:17","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=2568"},"modified":"2016-11-21T07:33:26","modified_gmt":"2016-11-21T05:33:26","slug":"persistencia-multiplicativa-de-un-numero","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/persistencia-multiplicativa-de-un-numero\/","title":{"rendered":"Persistencia multiplicativa de un n\u00famero"},"content":{"rendered":"<p>La <strong>persistencia multiplicativa<\/strong> de un n\u00famero es la cantidad de pasos requeridos para <em>reducirlo<\/em> a una cifra multiplicando sus d\u00edgitos. Por ejemplo, la persistencia de 39 es 3 porque 3\u00d79 = 27, 2\u00d77 = 14 y 1\u00d74 = 4.<\/p>\n<p>Definir las funciones<\/p>\n<pre lang=\"text\">\n   persistencia     :: Integer -> Integer\n   menorPersistente :: Integer -> Integer\n<\/pre>\n<p>tales que<\/p>\n<ul>\n<li>(persistencia x) es la persistencia de x. Por ejemplo,<\/li>\n<\/ul>\n<pre lang=\"text\">\n     persistencia 39                             ==   3\n     persistencia 2677889                        ==   8\n     persistencia 26888999                       ==   9\n     persistencia 3778888999                     ==  10\n     persistencia 277777788888899                ==  11\n     persistencia 77777733332222222222222222222  ==  11\n<\/pre>\n<ul>\n<li>(menorPersistente n) es el menor n\u00famero con persistencia n. Por ejemplo, <\/li>\n<\/ul>\n<pre lang=\"text\">\n     menorPersistente 0  ==  1\n     menorPersistente 1  ==  10\n     menorPersistente 2  ==  25\n     menorPersistente 3  ==  39\n     menorPersistente 4  ==  77\n     menorPersistente 5  ==  679\n     menorPersistente 6  ==  6788\n     menorPersistente 7  ==  68889\n<\/pre>\n<p>Comprobar con QuickCheck si todos los n\u00fameros menores que 10^233 tienen una persistencia multiplicativa menor o igual que 11.<\/p>\n<p><strong>Nota<\/strong>: Este ejercicio ha sido propuesto por Marcos Gir\u00e1ldez.<\/p>\n<h4>Soluciones<\/h4>\n<pre lang=\"haskell\">\nimport Test.QuickCheck\n\npersistencia :: Integer -> Integer\npersistencia x\n  | x < 10    = 0\n  | otherwise = 1 + persistencia (productoDigitos x)\n\nproductoDigitos :: Integer -> Integer\nproductoDigitos x \n  | x < 10    = x\n  | otherwise = r * productoDigitos y\n  where (y,r) = quotRem x 10\n\nmenorPersistente :: Integer -> Integer\nmenorPersistente n =\n  head [x | x <- [1..]\n          , persistencia x == n]\n\n-- La propiedad es\nprop_persistencia :: Integer -> Property\nprop_persistencia x =\n  x <= y ==> persistencia x <= 11\n  where y = 10^233\n\n-- La comprobaci\u00f3n es\n--    \u03bb> quickCheck prop_persistencia\n--    +++ OK, passed 100 tests.\n<\/pre>\n<h4>Referencias<\/h4>\n<ul>\n<li><a href=\"http:\/\/bit.ly\/2euL6ly\">Persistencia multiplicativa y el n\u00famero 77777733332222222222222222222<\/a> por M. Macho<\/li>\n<li><a href=\"http:\/\/bit.ly\/2euHGiE\">Multiplicative persistence<\/a> por Eric W. Weisstein en <a href=\"http:\/\/bit.ly\/2euLXTn\">MathWorld<\/a>. <\/li>\n<li><a href=\"https:\/\/oeis.org\/A003001\">Sucesi\u00f3n A003001<\/a> de la <a href=\"https:\/\/oeis.org\">OEIS<\/a>.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>La persistencia multiplicativa de un n\u00famero es la cantidad de pasos requeridos para reducirlo a una cifra multiplicando sus d\u00edgitos. Por ejemplo, la persistencia de 39 es 3 porque 3\u00d79 = 27, 2\u00d77 = 14 y 1\u00d74 = 4. Definir las funciones persistencia :: Integer -> Integer menorPersistente :: Integer -> Integer tales que (persistencia&#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,71,254,6,146],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/2568"}],"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=2568"}],"version-history":[{"count":6,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/2568\/revisions"}],"predecessor-version":[{"id":2601,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/2568\/revisions\/2601"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=2568"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=2568"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=2568"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}