MODULE Main; IMPORT Fmt, Scan, Params, Wr, Stdio; CONST IM = 139968; IA = 3877; IC = 29573; PROCEDURE gen_random(n: REAL): REAL = BEGIN last := (last * IA + IC) MOD IM; RETURN n * FLOAT(last) / FLOAT(IM); END gen_random; VAR last: INTEGER := 42; VAR n: INTEGER; i: INTEGER; result: REAL; BEGIN IF Params.Count > 0 THEN n := Scan.Int(Params.Get(1)); ELSE n := 1; END; FOR i := 1 TO n DO result := gen_random(100.0); END; Wr.PutText (Stdio.stdout, Fmt.Real(result, prec:=9)); Wr.Close (Stdio.stdout); END Main.