Conjetura de Lemoine
La conjetura de Lemoine afirma que
Todos los números impares mayores que 5 se pueden escribir de la forma p + 2q donde p y q son números primos. Por ejemplo, 47 = 13 + 2 x 17
Definir las funciones
1 2 |
descomposicionesLemoine :: Integer -> [(Integer,Integer)] graficaLemoine :: Integer -> IO () |
tales que
- (descomposicionesLemoine n) es la lista de pares de primos (p,q) tales que n = p + 2q. Por ejemplo,
1 2 3 4 5 6 7 |
descomposicionesLemoine 5 == [] descomposicionesLemoine 7 == [(3,2)] descomposicionesLemoine 9 == [(5,2),(3,3)] descomposicionesLemoine 21 == [(17,2),(11,5),(7,7)] descomposicionesLemoine 47 == [(43,2),(41,3),(37,5),(13,17)] descomposicionesLemoine 33 == [(29,2),(23,5),(19,7),(11,11),(7,13)] length (descomposicionesLemoine 2625) == 133 |
- (graficaLemoine n) dibuja la gráfica de los números de descomposiciones de Lemoine para los números impares menores o iguales que n. Por ejemplo, (graficaLemoine n 400) dibuja
Comprobar con QuickCheck la conjetura de Lemoine.
Nota: Basado en Lemoine’s conjecture
Soluciones
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
import Data.Numbers.Primes (isPrime, primes) import Graphics.Gnuplot.Simple import Test.QuickCheck descomposicionesLemoine :: Integer -> [(Integer,Integer)] descomposicionesLemoine n = [(p,q) | q <- takeWhile (<=(n-2) `div` 2) primes , let p = n - 2 * q , isPrime p] graficaLemoine :: Integer -> IO () graficaLemoine n = do plotList [ Key Nothing , Title "Conjetura de Lemoine" , PNG "Conjetura_de_Lemoine.png" ] [(k,length (descomposicionesLemoine k)) | k <- [1,3..n]] -- La conjetura es prop_conjeturaLemoine :: Integer -> Bool prop_conjeturaLemoine n = not (null (descomposicionesLemoine n')) where n' = 7 + 2 * abs n -- Su comprobación es -- λ> quickCheck prop_conjeturaLemoine -- +++ OK, passed 100 tests. |
Otras soluciones
- Se pueden escribir otras soluciones en los comentarios.
- El código se debe escribir entre una línea con <pre lang=»haskell»> y otra con </pre>
Pensamiento
«Todo el mundo sabe lo que es una curva, hasta que ha estudiado suficientes matemáticas para confundirse a través del incontable número de posibles excepciones.»
Un comentario