Números balanceados
Un número está balanceado si tiene un número par de divisores primos (contados con su multiplicidad). Por ejemplo, 60 es balanceado porque tiene 4 divisores primos (2, 2, 3 y 5).
Un balanceador del entero positivo k es par de enteros positivos (a,b) tales que a es menor que b y, para todo x entre 1 y k, el valor del polinomio P(x) = (x+a)*(x+b) es un número balanceado. Por ejemplo, (2,4) es un balanceador de 3 ya que
P(1) = (1+2)*(1+4) = 15 = 3*5 es balanceado P(2) = (2+2)*(2+4) = 24 = 2*2*2*3 es balanceado P(3) = (3+2)*(3+4) = 35 = 5*7 es balanceado
Definir la función
balanceadores :: Integer -> [(Integer,Integer)]
tal que (balanceadores k) es el conjunto de los balanceadores de k. Por ejemplo,
λ> take 7 (balanceadores 3) [(2,4),(1,6),(5,9),(1,11),(6,11),(7,12),(8,14)] λ> take 7 (balanceadores 5) [(8,14),(10,17),(6,18),(12,22),(13,23),(8,24),(14,24)] λ> take 7 (balanceadores 3) [(2,4),(1,6),(5,9),(1,11),(6,11),(7,12),(8,14)] λ> take 7 (balanceadores 4) [(6,11),(8,14),(9,15),(10,17),(6,18),(11,18),(7,19)] λ> take 7 (balanceadores 5) [(8,14),(10,17),(6,18),(12,22),(13,23),(8,24),(14,24)] λ> head (balanceadores 19) (1325,2827)
Nota: Este ejercicio está basado en el problema N2 de la Olimpíada Internacional de Matemáticas (IMO) del 2009.