{"id":2399,"date":"2012-12-04T07:25:05","date_gmt":"2012-12-04T07:25:05","guid":{"rendered":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/?p=2399"},"modified":"2013-03-08T05:47:37","modified_gmt":"2013-03-08T05:47:37","slug":"i1m2012-numero-con-mayor-cantidad-de-divisores","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/i1m2012-numero-con-mayor-cantidad-de-divisores\/","title":{"rendered":"I1M2012: N\u00famero con mayor cantidad de divisores"},"content":{"rendered":"<p>En la primera parte de la clase de hoy de <a href=\"http:\/\/www.cs.us.es\/~jalonso\/cursos\/i1m-12\">Inform\u00e1tica de 1\u00ba del Grado en Matem\u00e1ticas<\/a> hemos comentado la soluci\u00f3n con Haskell de un problema propuesto para la Olimpiada Internacional de Matem\u00e1ticas de 1983. Su enunciado es<\/p>\n<blockquote><p>\n&#8221;\u00bfCu\u00e1l de los n\u00fameros 1, 2, &#8230;, 1983 tiene mayor n\u00famero de divisores?&#8221;\n<\/p><\/blockquote>\n<p>Se van a presentar distintas soluciones y comparar sus eficiciencias. La primera definici\u00f3n es<\/p>\n<pre lang=\"haskell\">\r\nsolucion1 :: Int\r\nsolucion1 = head [n | n <- [1..1983], length (divisores1 n) == m]\r\n    where m = maximum [length (divisores1 n) | n <- [1..1983]]\r\n<\/pre>\n<p>donde (divisores1 n) es el conjunto de los divisores de n. <\/p>\n<pre lang=\"haskell\">\r\ndivisores1 :: Int -> [Int]\r\ndivisores1 n = [x | x <- [1..n], n `rem` x == 0]\r\n<\/pre>\n<p>El c\u00e1lculo con la primera definici\u00f3n es<\/p>\n<pre lang=\"text\">\r\nghci> solucion1\r\n1680\r\n(9.00 secs, 383804180 bytes)\r\n<\/pre>\n<p>En la segunda definici\u00f3n se cambia la definici\u00f3n de divisores<\/p>\n<pre lang=\"haskell\">\r\ndivisores2 :: Int -> [Int]\r\ndivisores2 n = n : [x | x <- [1..div n 2], n `rem` x == 0]\r\n\r\nsolucion2 :: Int\r\nsolucion2 = head [n | n <- [1..1983], length (divisores2 n) == m]\r\n    where m = maximum [length (divisores2 n) | n <- [1..1983]]\r\n<\/pre>\n<p>El c\u00e1lculo con la segunda definici\u00f3n es<\/p>\n<pre lang=\"text\">\r\nghci> solucion2\r\n1680\r\n(4.69 secs, 192555880 bytes)\r\n<\/pre>\n<p>En la tercera definici\u00f3n se ordenan los pares<\/p>\n<pre lang=\"haskell\">\r\nsolucion3 :: Int\r\nsolucion3 = \r\n    snd (maximum [(length (divisores2 n),n) | n <- [1..1983]])\r\n<\/pre>\n<p>El c\u00e1lculo con la tercera definici\u00f3n es<\/p>\n<pre lang=\"text\">\r\nghci> solucion3\r\n1680\r\n(2.76 secs, 112406152 bytes)\r\n<\/pre>\n<p>Se observa que el tiempo se ha reducido de 9.00 segundos a 2.76.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En la primera parte de la clase de hoy de Inform\u00e1tica de 1\u00ba del Grado en Matem\u00e1ticas hemos comentado la soluci\u00f3n con Haskell de un problema propuesto para la Olimpiada Internacional de Matem\u00e1ticas de 1983. Su enunciado es &#8221;\u00bfCu\u00e1l de los n\u00fameros 1, 2, &#8230;, 1983 tiene mayor n\u00famero de divisores?&#8221; Se van a presentar&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","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":[1],"tags":[298,200],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":false,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/2399"}],"collection":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/comments?post=2399"}],"version-history":[{"count":2,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/2399\/revisions"}],"predecessor-version":[{"id":2731,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/2399\/revisions\/2731"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/media?parent=2399"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/categories?post=2399"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/tags?post=2399"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}