Safe primes and unsafe primes: Difference between revisions

no edit summary
m (Put Sieve of Eratosthenes implementation in separate header file)
No edit summary
Line 795:
The number of unsafe primes below 10,000,000 is 633,922
</pre>
=={{header|Haskell}}==
Uses Numbers.Prime library: http://hackage.haskell.org/package/primes-0.2.1.0/docs/Data-Numbers-Primes.html
<lang haskell>
import Text.Printf (printf)
import Data.Numbers.Primes (isPrime, primes)
 
main = do
printf "First 35 safe primes: %s\n" (show $ take 35 safe)
printf "There are %d safe primes below 100,000.\n" (length $ takeWhile (<1000000) safe)
printf "There are %d safe primes below 10,000,000.\n\n" (length $ takeWhile (<10000000) safe)
 
printf "first 40 unsafe primes: %s\n" (show $ take 40 unsafe)
printf "There are %d unsafe primes below 100,000.\n" (length $ takeWhile (<1000000) unsafe)
printf "There are %d unsafe primes below 10,000,000.\n\n" (length $ takeWhile (<10000000) unsafe)
 
where safe = filter (\n -> isPrime ((n-1) `div` 2)) primes
unsafe = filter (\n -> not (isPrime((n-1) `div` 2))) primes
</lang>
{{out}}
<pre>
First 35 safe primes: [5,7,11,23,47,59,83,107,167,179,227,263,347,359,383,467,479,503,563,587,719,839,863,887,983,1019,1187,1283,1307,1319,1367,1439,1487,1523,1619]
There are 4324 safe primes below 100,000.
There are 30657 safe primes below 10,000,000.
 
first 40 unsafe primes: [2,3,13,17,19,29,31,37,41,43,53,61,67,71,73,79,89,97,101,103,109,113,127,131,137,139,149,151,157,163,173,181,191,193,197,199,211,223,229,233]
There are 74174 unsafe primes below 100,000.
There are 633922 unsafe primes below 10,000,000.
</pre>
=={{header|J}}==
<pre>
Anonymous user