aboutsummaryrefslogtreecommitdiff
path: root/challenge-252/deadmarshal/modula-3/ch1/src/Ch1.m3
blob: d29da8e66b4b679277decd92e73a0a8b3dc9ec58 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
MODULE Ch1 EXPORTS Main;

IMPORT SIO;

VAR 
  A1:ARRAY[0..3] OF INTEGER := ARRAY OF INTEGER{1,2,3,4};
  A2:ARRAY[0..5] OF INTEGER := ARRAY OF INTEGER{2,7,1,19,18,3};

PROCEDURE SpecialNumbers(VAR A:ARRAY OF INTEGER):INTEGER = 
  VAR Sum:INTEGER := 0;
  BEGIN
    FOR I := FIRST(A) TO LAST(A) DO 
      IF NUMBER(A) MOD (I+1) = 0 THEN INC(Sum,A[I] * A[I]) END
    END;
    RETURN Sum
  END SpecialNumbers;

BEGIN
  SIO.PutInt(SpecialNumbers(A1)); SIO.Nl();
  SIO.PutInt(SpecialNumbers(A2)); SIO.Nl()
END Ch1.