aboutsummaryrefslogtreecommitdiff
path: root/challenge-173/deadmarshal/modula-3/ch2/src/Ch2.m3
blob: c2d726c3f8c8223400bc8fcf34aa9d3f5dfe87cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
MODULE Ch2 EXPORTS Main;

IMPORT IO;
FROM BigInteger IMPORT T,Add,Mul,FromInteger;
FROM BigIntegerFmtLex IMPORT Fmt;

PROCEDURE SylvestersSequence() = 
VAR
  K:INTEGER := 2;
  Arr:ARRAY[0..9] OF T;
BEGIN
  Arr[0] := FromInteger(2);
  Arr[1] := FromInteger(3);
  FOR I := 2 TO LAST(Arr) DO Arr[I] := FromInteger(1) END;
  FOR I := 2 TO LAST(Arr) DO
    FOR J := 0 TO K-1 DO 
      Arr[K] := Mul(Arr[K], Arr[J]);
    END;
    Arr[K] := Add(Arr[K], FromInteger(1));
    INC(K);
  END;
  FOR I := FIRST(Arr) TO LAST(Arr) DO
    IO.Put(Fmt(Arr[I]) & "\n");
  END;
END SylvestersSequence;

BEGIN
  SylvestersSequence();
END Ch2.