Strong and weak primes: Difference between revisions

m (use wiki markup for links)
Line 1,616:
<pre>
321,750 WEAK primes found below or equal to 10,000,000.
</pre>
 
=={{header|Ring}}==
<lang ring>
load "stdlib.ring"
 
see "working..." + nl
 
p = 0
num = 0
pr1 = 37
pr2 = 38
limit1 = 457
limit2 = 1000000
limit3 = 10000000
primes = []
 
see "first 36 strong primes:" + nl
while true
p = p + 1
if isprime(p)
if p < limit1
add(primes,p)
else
exit
ok
ok
end
 
ln = len(primes)
for n = 2 to ln-1
tmp = (primes[n-1] + primes[n+1])/2
if primes[n] > tmp
num = num + 1
if num < pr1
see " " + primes[n]
ok
ok
next
 
see nl + "first 37 weak primes:" + nl
 
num = 0
ln = len(primes)
for n = 2 to ln-1
tmp = (primes[n-1] + primes[n+1])/2
if primes[n] < tmp
num = num + 1
if num < pr2
see " " + primes[n]
ok
ok
next
 
p = 0
primes = []
while true
p = p + 1
if isprime(p)
if p < limit3
add(primes,p)
else
exit
ok
ok
end
 
primes2 = 0
primes3 = 0
ln = len(primes)
for n = 2 to ln-1
tmp = (primes[n-1] + primes[n+1])/2
if primes[n] > tmp
if primes[n] < limit2
primes2 = primes2 + 1
ok
if primes[n] < limit3
primes3 = primes3 + 1
else
exit
ok
ok
next
 
see nl
see "strong primes below 1,000,000: " + primes2 + nl
see "strong primes below 10,000,000: " + primes3 + nl
 
primes2 = 0
primes3 = 0
ln = len(primes)
for n = 2 to ln-1
tmp = (primes[n-1] + primes[n+1])/2
if primes[n] < tmp
if primes[n] < limit2
primes2 = primes2 + 1
ok
if primes[n] < limit3
primes3 = primes3 + 1
else
exit
ok
ok
next
 
see nl
see "weak primes below 1,000,000: " + primes2 + nl
see "weak primes below 10,000,000: " + primes3 + nl
</lang>
Output:
<pre>
first 36 strong primes:
11 17 29 37 41 59 67 71 79 97 101 107 127 137 149 163 179 191 197 223 227 239 251 269 277 281 307 311 331 347 367 379 397 419 431 439
first 37 weak primes:
3 7 13 19 23 31 43 47 61 73 83 89 103 109 113 131 139 151 167 181 193 199 229 233 241 271 283 293 313 317 337 349 353 359 383 389 401
strong primes below 1,000,000: 37723
strong primes below 10,000,000: 320991
weak primes below 1,000,000: 37780
weak primes below 10,000,000: 321750
</pre>
 
2,468

edits