Conjetura de Rassias
El artículo de esta semana del blog Números y hoja de cálculo está dedicado a la Conjetura de Rassias. Dicha conjetura afirma que
Para cada número primo p > 2 existen dos primos a y b, con a < b, tales que
(p-1)a = b+1
Dado un primo p > 2, los pares de Rassia de p son los pares de primos (a,b), con a < b, tales que (p-1)a = b+1. Por ejemplo, (2,7) y (3,11) son pares de Rassia de 5 ya que
- 2 y 7 son primos, 2 < 7 y (5-1)·2 = 7+1
- 3 y 11 son primos, 3 < 11 y (5-1)·3 = 11+1
Definir las siguientes funciones
1 2 |
paresRassias :: Integer -> [(Integer,Integer)] conjeturaRassias :: Integer -> Bool |
tales que
- (paresRassias p) es la lista de los pares de Rassias del primo p (que se supone que es mayor que 2). Por ejemplo,
1 2 |
take 3 (paresRassias 5) == [(2,7),(3,11),(5,19)] take 3 (paresRassias 1229) == [(71,87187),(113,138763),(191,234547)] |
- (conjeturaRassia x) se verifica si para todos los primos menores que x (y mayores que 2) se cumple la conjetura de Rassia. Por ejemplo,
1 |
conjeturaRassias (10^5) == True |
Soluciones
1 2 3 4 5 6 7 8 9 10 11 |
import Data.Numbers.Primes (primes, isPrime) paresRassias :: Integer -> [(Integer,Integer)] paresRassias p = [(a,b) | a <- primes , let b = (p - 1) * a - 1 , isPrime b] conjeturaRassias :: Integer -> Bool conjeturaRassias x = and [(not . null . paresRassias) p | p <- tail (takeWhile (<x) primes)] |
Referencias
- Conjetura de Rassias por Antonio Roldán en el blog «Números y hoja de cálculo»
- Rassias’ conjecture en Wikipedia
2 Comentarios