Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
42
Task/Tau-number/Modula-2/tau-number.mod2
Normal file
42
Task/Tau-number/Modula-2/tau-number.mod2
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
MODULE TauNumbers;
|
||||
FROM InOut IMPORT WriteCard, WriteLn;
|
||||
|
||||
CONST
|
||||
MaxNum = 1100; (* enough to generate 100 Tau numbers *)
|
||||
NumTau = 100; (* how many Tau numbers to generate *)
|
||||
|
||||
VAR DivCount: ARRAY [1..MaxNum] OF CARDINAL;
|
||||
seen, n: CARDINAL;
|
||||
|
||||
(* Find the amount of divisors for each number beforehand *)
|
||||
PROCEDURE CountDivisors;
|
||||
VAR i, j: CARDINAL;
|
||||
BEGIN
|
||||
FOR i := 1 TO MaxNum DO
|
||||
DivCount[i] := 1; (* every number is divisible by 1 *)
|
||||
END;
|
||||
|
||||
FOR i := 2 TO MaxNum DO
|
||||
j := i;
|
||||
WHILE j <= MaxNum DO (* J is divisible by I *)
|
||||
DivCount[j] := DivCount[j] + 1;
|
||||
j := j + i; (* next multiple of i *)
|
||||
END;
|
||||
END;
|
||||
END CountDivisors;
|
||||
|
||||
BEGIN
|
||||
CountDivisors();
|
||||
n := 1;
|
||||
seen := 0;
|
||||
WHILE seen < NumTau DO
|
||||
IF n MOD DivCount[n] = 0 THEN
|
||||
WriteCard(n, 5);
|
||||
INC(seen);
|
||||
IF seen MOD 10 = 0 THEN
|
||||
WriteLn();
|
||||
END;
|
||||
END;
|
||||
INC(n);
|
||||
END;
|
||||
END TauNumbers.
|
||||
Loading…
Add table
Add a link
Reference in a new issue