27 lines
605 B
Python
27 lines
605 B
Python
def mertens(count):
|
|
"""Generate Mertens numbers"""
|
|
m = [None, 1]
|
|
for n in range(2, count+1):
|
|
m.append(1)
|
|
for k in range(2, n+1):
|
|
m[n] -= m[n//k]
|
|
return m
|
|
|
|
|
|
ms = mertens(1000)
|
|
|
|
print("The first 99 Mertens numbers are:")
|
|
print(" ", end=' ')
|
|
col = 1
|
|
for n in ms[1:100]:
|
|
print("{:2d}".format(n), end=' ')
|
|
col += 1
|
|
if col == 10:
|
|
print()
|
|
col = 0
|
|
|
|
zeroes = sum(x==0 for x in ms)
|
|
crosses = sum(a!=0 and b==0 for a,b in zip(ms, ms[1:]))
|
|
print("M(N) equals zero {} times.".format(zeroes))
|
|
print("M(N) crosses zero {} times.".format(crosses))
|