Fortunate numbers: Difference between revisions

→‎{{header|Haskell}}: added solution
(add FreeBASIC)
(→‎{{header|Haskell}}: added solution)
Line 149:
373 379 383 397 401 409 419 421 439 443
</pre>
 
=={{header|Haskell}}==
<lang haskell>import Data.Numbers.Primes (primes)
import Math.NumberTheory.Primes.Testing (isPrime)
import Data.List (nub)
 
primorials :: [Integer]
primorials = 1 : scanl1 (*) primes
 
nextPrime :: Integer -> Integer
nextPrime n
| even n = head $ dropWhile (not . isPrime) [n+1, n+3..]
| even n = nextPrime (n+1)
 
fortunateNumbers :: [Integer]
fortunateNumbers = (\p -> nextPrime (p + 2) - p) <$> tail primorials</lang>
 
<pre>λ> take 50 fortunateNumbers
[3,5,5,7,13,23,17,19,23,37,61,67,61,71,47,107,59,61,109,89,103,79,151,197,101,103,233,223,127,223,191,163,229,643,239,157,167,439,239,199,191,199,383,233,751,313,773,607,313,383]
 
-- unique fortunate numbers
λ> take 50 $ nub $ fortunateNumbers
[3,5,7,13,23,17,19,37,61,67,71,47,107,59,109,89,103,79,151,197,101,233,223,127,191,163,229,643,239,157,167,439,199,383,751,313,773,607,293,443,331,283,277,271,401,307,379,491,311,397]</pre>
 
=={{header|Julia}}==
Anonymous user