# 50-th Mersenne Prime Number

In [1]:
m50 = str(2^77232917 - 1)
len(m50)

23249425

First 100 digits ...

In [2]:
m50[:100]

'4673331833592310999883355855611155212513211028177144957985823385935679234805211772074843110997402088'

Last 100 ditits ...

In [3]:
m50[-100:]

'2223376672925679282131965467343395945397370476369279894627999939614659217371136582730618069762179071'

## Probability distribution of its Digits

In [4]:
from collections import Counter
dist = Counter(m50)
dist

Counter({'4': 2326305, '8': 2326039, '0': 2325846, '3': 2325845, '5': 2325065, '6': 2324655, '9': 2324207, '1': 2324106, '7': 2324051, '2': 2323306})
In [5]:
for d in sorted(['{:s}: {}%'.format(k, ((100 * v) / len(m50)).n(digits=8)) for k, v in dist.iteritems()]):
print d

0: 10.003886% 1: 9.9964021% 2: 9.9929611% 3: 10.003882% 4: 10.005860% 5: 10.000527% 6: 9.9987634% 7: 9.9961655% 8: 10.004716% 9: 9.9968365%
In [ ]:



## Amount in Bathtubs

for each digit, that number of drops

In [6]:
drop_ml = 0.05
ml = drop_ml * sum(int(i) for i in m50)
l = ml / 1000
l / 140 # one bathtub

37.3647357142857
In [ ]: