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