{"id":5987,"date":"2021-01-18T06:00:30","date_gmt":"2021-01-18T04:00:30","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=5987"},"modified":"2021-01-25T11:34:35","modified_gmt":"2021-01-25T09:34:35","slug":"numeros-equidigitales","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/numeros-equidigitales\/","title":{"rendered":"N\u00fameros equidigitales"},"content":{"rendered":"<p>Un <a href=\"https:\/\/bit.ly\/2K8o5WA\">n\u00famero equidigital<\/a> es un n\u00famero natural que tiene el mismo n\u00famero de d\u00edgitos que el n\u00famero de d\u00edgitos en su factorizaci\u00f3n prima, incluidos los exponentes mayores que 1. Por ejemplo,<\/p>\n<ul>\n<li>10 es equidigital ya que tiene 2 d\u00edgitos al igual que su factorizaci\u00f3n prima (2 x 5).<\/li>\n<li>25 es equidigital ya que tiene 2 d\u00edgitos al igual que su factorizaci\u00f3n prima (5^2).<\/li>\n<li>121 es equidigital ya que tiene 3 d\u00edgitos al igual que su factorizaci\u00f3n prima (11^2).<\/li>\n<li>175 es equidigital ya que tiene 3 d\u00edgitos al igual que su factorizaci\u00f3n prima (5^2 x 7).<\/li>\n<li>1125 es equidigital ya que tiene 4 d\u00edgitos al igual que su factorizaci\u00f3n prima (3^2 x 5^3).<\/li>\n<li>2021 es equidigital ya que tiene 4 d\u00edgitos al igual que su factorizaci\u00f3n prima (43 x 47).<\/li>\n<li>3072 es equidigital ya que tiene 4 d\u00edgitos al igual que su factorizaci\u00f3n prima (3 x 2^10).<\/li>\n<\/ul>\n<p>Definir las funciones<\/p>\n<pre lang=\"text\">\n   esEquidigital :: Int -> Bool\n   equidigitales :: [Int]\n<\/pre>\n<p>tal que<\/p>\n<ul>\n<li>(esEquidigital x) se verifica si x es un n\u00famero equidigital. Por ejemplo.<\/li>\n<\/ul>\n<pre lang=\"text\">\n     esEquidigital 10    ==  True\n     esEquidigital 11    ==  True\n     esEquidigital 2021  ==  True\n     esEquidigital 2022  ==  False\n<\/pre>\n<ul>\n<li>equidigitales es la lista de los n\u00fameros equidigitales. Por ejemplo,<\/li>\n<\/ul>\n<pre lang=\"text\">\n     \u03bb> take 20 equidigitales\n     [2,3,5,7,10,11,13,14,15,16,17,19,21,23,25,27,29,31,32,35]\n     \u03bb> equidigitales !! 755\n     2021\n     \u03bb> equidigitales !! 100000\n     405341\n<\/pre>\n<p>Comprobar con QuickChek que el conjunto de los n\u00fameros equidigitales es infinito; es decir, para cada entero n existe un equidigital mayor que n.<\/p>\n<h4>Soluciones<\/h4>\n<pre lang=\"haskell\">\nimport Data.Numbers.Primes\nimport Data.List\nimport Test.QuickCheck\n\nesEquidigital :: Int -> Bool\nesEquidigital x =\n  nDigitos x == nDigitosFactorizacion x\n\n-- (nDigitos n) es el n\u00famero de d\u00edgitos de n. Por ejemplo,\n--    nDigitos 2021  ==  4\nnDigitos :: Int -> Int\nnDigitos = length . show\n\n-- (nDigitosFactorizacion x) es el n\u00famero de d\u00edgitos en la factorizaci\u00f3n\n-- prima de x, incluyendo los exponentes mayores que 1. Por ejemplo,\n--    nDigitosFactorizacion 3000  ==  5\n--    nDigitosFactorizacion 2021  ==  4\n--    nDigitosFactorizacion 3072  ==  4\nnDigitosFactorizacion :: Int -> Int\nnDigitosFactorizacion x =\n  sum [nDigitos y + aux n | (y,n) <- factorizacion x]\n  where aux 1 = 0\n        aux n = nDigitos n\n\n-- (factorizacion x) es la factorizaci\u00f3n prima de x expresada como una\n-- lista de pares que son las bases y los exponentes. Por ejemplo,\n--    factorizacion 3000  ==  [(2,3),(3,1),(5,3)]\n--    factorizacion 2021  ==  [(43,1),(47,1)]\n--    factorizacion 3072  ==  [(2,10),(3,1)]\nfactorizacion :: Int -> [(Int,Int)]\nfactorizacion x =\n  [(y, 1 + length ys) | (y:ys) <- group (primeFactors x)]\n\nequidigitales :: [Int]\nequidigitales = filter esEquidigital [1..]\n\n-- La propiedad es\nprop_equidigitales :: Int -> Property\nprop_equidigitales n =\n  n > 0 ==> any esEquidigital [n+1..]\n\n-- La comprobaci\u00f3n es\n--    \u03bb> quickCheck prop_equidigitales\n--    +++ OK, passed 100 tests.\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Un n\u00famero equidigital es un n\u00famero natural que tiene el mismo n\u00famero de d\u00edgitos que el n\u00famero de d\u00edgitos en su factorizaci\u00f3n prima, incluidos los exponentes mayores que 1. Por ejemplo, 10 es equidigital ya que tiene 2 d\u00edgitos al igual que su factorizaci\u00f3n prima (2 x 5). 25 es equidigital ya que tiene 2&#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":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/5987"}],"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=5987"}],"version-history":[{"count":2,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/5987\/revisions"}],"predecessor-version":[{"id":6025,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/5987\/revisions\/6025"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=5987"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=5987"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=5987"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}