Conjuntos de primos emparejables
Un conjunto de primos emparejables es un conjunto S de números primos tales que al concatenar cualquier par de elementos de S se obtiene un número primo. Por ejemplo, {3, 7, 109, 673} es un conjunto de primos emparejables ya que sus elementos son primos y las concatenaciones de sus parejas son 37, 3109, 3673, 73, 7109, 7673, 1093, 1097, 109673, 6733, 6737 y 673109 son primos.
Definir la función
1 |
emparejables :: Integer -> Integer -> [[Integer]] |
tal que (emparejables n m) es el conjunto de los conjuntos emparejables de n elementos menores que n. Por ejemplo,
1 2 3 4 5 6 |
take 5 (emparejables 2 10) == [[3,7]] take 5 (emparejables 3 10) == [] take 5 (emparejables 2 100) == [[3,7],[3,11],[3,17],[3,31],[3,37]] take 5 (emparejables 3 100) == [[3,37,67],[7,19,97]] take 5 (emparejables 4 100) == [] take 5 (emparejables 4 1000) == [[3,7,109,673],[23,311,677,827]] |