(* Moebius function *) block unit Moebius: function (n: integer): integer; var m, f: integer; begin m := 1; if n =/= 1 then f := 2; do if n mod (f * f) = 0 then m := 0 else if n mod f = 0 then m := -m; n := n div f fi; f := f + 1 fi; if (f > n) or (m = 0) then exit fi od fi; result := m end; var t, u: integer; begin for t := 0 to 9 do for u := 1 to 10 do write(Moebius(10 * t + u): 2, " ") od; writeln; od; end;