Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
37
Task/Strong-and-weak-primes/Python/strong-and-weak-primes.py
Normal file
37
Task/Strong-and-weak-primes/Python/strong-and-weak-primes.py
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
import numpy as np
|
||||
|
||||
def primesfrom2to(n):
|
||||
# https://stackoverflow.com/questions/2068372/fastest-way-to-list-all-primes-below-n-in-python/3035188#3035188
|
||||
""" Input n>=6, Returns a array of primes, 2 <= p < n """
|
||||
sieve = np.ones(n//3 + (n%6==2), dtype=np.bool)
|
||||
sieve[0] = False
|
||||
for i in range(int(n**0.5)//3+1):
|
||||
if sieve[i]:
|
||||
k=3*i+1|1
|
||||
sieve[ ((k*k)//3) ::2*k] = False
|
||||
sieve[(k*k+4*k-2*k*(i&1))//3::2*k] = False
|
||||
return np.r_[2,3,((3*np.nonzero(sieve)[0]+1)|1)]
|
||||
|
||||
p = primes10m = primesfrom2to(10_000_000)
|
||||
s = strong10m = [t for s, t, u in zip(p, p[1:], p[2:])
|
||||
if t > (s + u) / 2]
|
||||
w = weak10m = [t for s, t, u in zip(p, p[1:], p[2:])
|
||||
if t < (s + u) / 2]
|
||||
b = balanced10m = [t for s, t, u in zip(p, p[1:], p[2:])
|
||||
if t == (s + u) / 2]
|
||||
|
||||
print('The first 36 strong primes:', s[:36])
|
||||
print('The count of the strong primes below 1,000,000:',
|
||||
sum(1 for p in s if p < 1_000_000))
|
||||
print('The count of the strong primes below 10,000,000:', len(s))
|
||||
print('\nThe first 37 weak primes:', w[:37])
|
||||
print('The count of the weak primes below 1,000,000:',
|
||||
sum(1 for p in w if p < 1_000_000))
|
||||
print('The count of the weak primes below 10,000,000:', len(w))
|
||||
print('\n\nThe first 10 balanced primes:', b[:10])
|
||||
print('The count of balanced primes below 1,000,000:',
|
||||
sum(1 for p in b if p < 1_000_000))
|
||||
print('The count of balanced primes below 10,000,000:', len(b))
|
||||
print('\nTOTAL primes below 1,000,000:',
|
||||
sum(1 for pr in p if pr < 1_000_000))
|
||||
print('TOTAL primes below 10,000,000:', len(p))
|
||||
Loading…
Add table
Add a link
Reference in a new issue