Data update
This commit is contained in:
parent
8f05c7136f
commit
0bf4da02c3
82 changed files with 2194 additions and 118 deletions
39
Task/Tau-number/Oberon/tau-number.oberon
Normal file
39
Task/Tau-number/Oberon/tau-number.oberon
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
MODULE TauNumbers;
|
||||
|
||||
IMPORT Out;
|
||||
|
||||
CONST
|
||||
MaxNum = 1100;
|
||||
NumTau = 100;
|
||||
|
||||
VAR
|
||||
divcount: ARRAY MaxNum OF LONGINT; (* enough to generate 100 Tau numbers *)
|
||||
seen,n:LONGINT; (* how many Tau numbers to generate *)
|
||||
|
||||
(* Find the amount of divisors for each number beforehand *)
|
||||
PROCEDURE CountDivisors;
|
||||
VAR i,j:LONGINT;
|
||||
BEGIN
|
||||
FOR i := 0 TO LEN(divcount)-1 DO divcount[i] := 1 END;
|
||||
FOR i := 2 TO LEN(divcount)-1 DO
|
||||
j := i;
|
||||
WHILE j <= LEN(divcount)-1 DO (* j is divisible by i *)
|
||||
INC(divcount[j]);
|
||||
INC(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
|
||||
Out.Int(n,5);
|
||||
INC(seen);
|
||||
IF seen MOD 10 = 0 THEN Out.Ln END
|
||||
END;
|
||||
INC(n)
|
||||
END
|
||||
END TauNumbers.
|
||||
Loading…
Add table
Add a link
Reference in a new issue