Primos de Kamenetsky
Un número primo se dice que es un primo de Kamenetsky si al anteponerlo cualquier dígito se obtiene un número compuesto. Por ejemplo, el 5 es un primo de Kamenetsky ya que 15, 25, 35, 45, 55, 65, 75, 85 y 95 son compuestos. También lo es 149 ya que 1149, 2149, 3149, 4149, 5149, 6149, 7149, 8149 y 9149 son compuestos.
Definir la sucesión
primosKamenetsky :: [Integer]
tal que sus elementos son los números primos de Kamenetsky. Por ejemplo,
take 5 primosKamenetsky == [2,5,149,401,509]
Soluciones
import Data.Numbers.Primes (isPrime, primes) primosKamenetsky :: [Integer] primosKamenetsky = [x | x <- primes , esKamenetsky x] esKamenetsky :: Integer -> Bool esKamenetsky x = all (not . isPrime) [read (d:xs) | d <- "123456789"] where xs = show x
Referencias
- Sucesión A155762 de la OEIS.
- Anteponer un dígito a un primo en "Números y algo más".