34 lines
655 B
Plaintext
34 lines
655 B
Plaintext
MODULE TauFunc;
|
|
FROM InOut IMPORT WriteCard, WriteLn;
|
|
|
|
VAR i: CARDINAL;
|
|
|
|
PROCEDURE tau(n: CARDINAL): CARDINAL;
|
|
VAR total, count, p: CARDINAL;
|
|
BEGIN
|
|
total := 1;
|
|
WHILE n MOD 2 = 0 DO
|
|
n := n DIV 2;
|
|
total := total + 1
|
|
END;
|
|
p := 3;
|
|
WHILE p*p <= n DO
|
|
count := 1;
|
|
WHILE n MOD p = 0 DO
|
|
n := n DIV p;
|
|
count := count + 1
|
|
END;
|
|
total := total * count;
|
|
p := p + 2
|
|
END;
|
|
IF n>1 THEN total := total * 2 END;
|
|
RETURN total;
|
|
END tau;
|
|
|
|
BEGIN
|
|
FOR i := 1 TO 100 DO
|
|
WriteCard(tau(i), 3);
|
|
IF i MOD 20 = 0 THEN WriteLn END
|
|
END
|
|
END TauFunc.
|