Postulado de Bertrand
El postulado de Bertrand afirma que para cualquier número entero n > 1, existe al menos un número primo p con n < p < 2n.
Definir la función
1 |
siguientePrimo :: Integer -> Integer |
tal que (siguientePrimo n) es el menor primo mayor que n. Por ejemplo,
1 2 |
siguientePrimo 8 == 11 siguientePrimo 11 == 13 |
Comprobar con QuickCheck el postulado de Bertrand; es decir, para todo entero n > 1, se verifica que n < p < 2n, donde p es (siguientePrimo n).
Soluciones
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import Data.Numbers.Primes import Test.QuickCheck siguientePrimo :: Integer -> Integer siguientePrimo n = head (dropWhile (<= n) primes) -- La propiedad es postuladoDeBertrand :: Integer -> Property postuladoDeBertrand n = n > 1 ==> n < p && p < 2 * n where p = siguientePrimo n -- La comprobación es -- λ> quickCheck postuladoDeBertrand -- +++ OK, passed 100 tests. |
Referencias
- Bertrand’s postulate en Wikipedia.
Pensamiento
Pero caer de cabeza,
en esta noche sin luna,
en medio de esta maleza,
junto a la negra laguna.Antonio Machado