39 lines
854 B
Plaintext
39 lines
854 B
Plaintext
proc nonrec mertens([*] short m) void:
|
|
word n,k;
|
|
m[1] := 1;
|
|
for n from 2 upto dim(m,1)-1 do
|
|
m[n] := 1;
|
|
for k from 2 upto n do
|
|
m[n] := m[n] - m[n/k]
|
|
od
|
|
od
|
|
corp
|
|
|
|
proc nonrec main() void:
|
|
[1001] short m;
|
|
word x, y, eqz, crossz;
|
|
|
|
mertens(m);
|
|
writeln("The first 99 Mertens numbers are:");
|
|
for y from 0 by 10 upto 90 do
|
|
for x from 0 upto 9 do
|
|
if x+y=0
|
|
then write(" ")
|
|
else write(m[x+y]:3)
|
|
fi
|
|
od;
|
|
writeln()
|
|
od;
|
|
|
|
eqz := 0;
|
|
crossz := 0;
|
|
for x from 2 upto dim(m,1)-1 do
|
|
if m[x]=0 then
|
|
eqz := eqz + 1;
|
|
if m[x-1]~=0 then crossz := crossz + 1 fi
|
|
fi
|
|
od;
|
|
writeln("M(N) is zero ",eqz," times.");
|
|
writeln("M(N) crosses zero ",crossz," times.")
|
|
corp
|