{"id":3817,"date":"2018-02-28T06:00:46","date_gmt":"2018-02-28T04:00:46","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=3817"},"modified":"2018-03-07T07:31:53","modified_gmt":"2018-03-07T05:31:53","slug":"numeros-cuyos-factoriales-son-divisibles-por-x-pero-no-por-y","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/numeros-cuyos-factoriales-son-divisibles-por-x-pero-no-por-y\/","title":{"rendered":"N\u00fameros cuyos factoriales son divisibles por x pero no por y"},"content":{"rendered":"<p>Hay 3 n\u00fameros (el 2, 3 y 4) cuyos factoriales son divisibles por 2 pero no por 5. An\u00e1logamente, hay n\u00fameros 5 (el 5, 6, 7, 8, 9) cuyos factoriales son divisibles por 15 pero no por 25.<\/p>\n<p>Definir la funci\u00f3n<\/p>\n<pre lang=\"text\">\n   nNumerosConFactorialesDivisibles :: Integer -> Integer -> Integer\n<\/pre>\n<p>tal que (nNumerosConFactorialesDivisibles x y) es la cantidad de n\u00fameros cuyo factorial es divisible por x pero no  por y. Por ejemplo,<\/p>\n<pre lang=\"text\">\n  nNumerosConFactorialesDivisibles 2   5     ==  3\n  nNumerosConFactorialesDivisibles 15  25    ==  5\n  nNumerosConFactorialesDivisibles 100 2000  ==  5\n<\/pre>\n<h4>Soluciones<\/h4>\n<pre lang=\"haskell\">\nimport Data.List (genericLength)\n\n-- 1\u00aa soluci\u00f3n\n-- ===========\n\nnNumerosConFactorialesDivisibles :: Integer -> Integer -> Integer\nnNumerosConFactorialesDivisibles x y =\n  genericLength (numerosConFactorialesDivisibles x y)\n\n-- (numerosConFactorialesDivisibles x y) es la lista de n\u00fameros\n-- divisibles por el factorial de x pero no divisibles por el \n-- factorial de y. Por ejemplo,\n--   numerosConFactorialesDivisibles 2  5   ==  [2,3,4]\n--   numerosConFactorialesDivisibles 15 25  ==  [5,6,7,8,9]\nnumerosConFactorialesDivisibles :: Integer -> Integer -> [Integer]\nnumerosConFactorialesDivisibles x y =\n  [z | z <- [0..y-1]\n     , factorial z `mod` x == 0\n     , factorial z `mod` y \/= 0]\n\n-- (factorial n) es el factorial de n. Por ejemplo, \n--   factorial 4  ==  24\nfactorial :: Integer -> Integer\nfactorial n = product [1..n]\n\n-- 2\u00aa soluci\u00f3n (usando la funci\u00f3n de Smarandache)\n-- ==============================================\n\nnNumerosConFactorialesDivisibles2 :: Integer -> Integer -> Integer\nnNumerosConFactorialesDivisibles2 x y =\n  max 0 (smarandache y - smarandache x)\n\n--(smarandache n) es el menor n\u00famero cuyo factorial es divisible por\n-- n. Por ejemplo,   \n--    smarandache 8   ==  4\n--    smarandache 10  ==  5\n--    smarandache 16  ==  6\nsmarandache :: Integer -> Integer\nsmarandache x =\n  head [n | (n,y) <- zip [0..] factoriales\n          , y `mod` x == 0]\n\n-- factoriales es la lista de los factoriales. Por ejemplo, \n--    \u03bb> take 12 factoriales\n--    [1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800]\nfactoriales :: [Integer]\nfactoriales = 1 : scanl1 (*) [1..]\n\n-- Comparaci\u00f3n de eficiencia\n--    \u03bb> nNumerosConFactorialesDivisibles 100 2000\n--    5\n--    (2.70 secs, 3,933,938,648 bytes)\n--    \u03bb> nNumerosConFactorialesDivisibles2 100 2000\n--    5\n--    (0.01 secs, 148,200 bytes)\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Hay 3 n\u00fameros (el 2, 3 y 4) cuyos factoriales son divisibles por 2 pero no por 5. An\u00e1logamente, hay n\u00fameros 5 (el 5, 6, 7, 8, 9) cuyos factoriales son divisibles por 15 pero no por 25. Definir la funci\u00f3n nNumerosConFactorialesDivisibles :: Integer -> Integer -> Integer tal que (nNumerosConFactorialesDivisibles x y) es la&#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,258,71,83,89,11,157,252,9],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/3817"}],"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=3817"}],"version-history":[{"count":4,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/3817\/revisions"}],"predecessor-version":[{"id":3844,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/3817\/revisions\/3844"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=3817"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=3817"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=3817"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}