Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
49
Task/Prime-conspiracy/Python/prime-conspiracy.py
Normal file
49
Task/Prime-conspiracy/Python/prime-conspiracy.py
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
def isPrime(n):
|
||||
if n < 2:
|
||||
return False
|
||||
if n % 2 == 0:
|
||||
return n == 2
|
||||
if n % 3 == 0:
|
||||
return n == 3
|
||||
|
||||
d = 5
|
||||
while d * d <= n:
|
||||
if n % d == 0:
|
||||
return False
|
||||
d += 2
|
||||
|
||||
if n % d == 0:
|
||||
return False
|
||||
d += 4
|
||||
return True
|
||||
|
||||
def generatePrimes():
|
||||
yield 2
|
||||
yield 3
|
||||
|
||||
p = 5
|
||||
while p > 0:
|
||||
if isPrime(p):
|
||||
yield p
|
||||
p += 2
|
||||
if isPrime(p):
|
||||
yield p
|
||||
p += 4
|
||||
|
||||
g = generatePrimes()
|
||||
transMap = {}
|
||||
prev = None
|
||||
limit = 1000000
|
||||
for _ in xrange(limit):
|
||||
prime = next(g)
|
||||
if prev:
|
||||
transition = (prev, prime %10)
|
||||
if transition in transMap:
|
||||
transMap[transition] += 1
|
||||
else:
|
||||
transMap[transition] = 1
|
||||
prev = prime % 10
|
||||
|
||||
print "First {:,} primes. Transitions prime % 10 > next-prime % 10.".format(limit)
|
||||
for trans in sorted(transMap):
|
||||
print "{0} -> {1} count {2:5} frequency: {3}%".format(trans[0], trans[1], transMap[trans], 100.0 * transMap[trans] / limit)
|
||||
Loading…
Add table
Add a link
Reference in a new issue