MODULE SquareNotCube; FROM InOut IMPORT WriteString, WriteCard, WriteLn; CONST Amount = 30; VAR CubeRoot, SquareRoot, Cube, Square, Seen: CARDINAL; BEGIN Seen := 0; SquareRoot := 1; CubeRoot := 1; Square := 1; Cube := 1; REPEAT SquareRoot := SquareRoot + 1; Square := SquareRoot * SquareRoot; WHILE Square > Cube DO CubeRoot := CubeRoot + 1; Cube := CubeRoot * CubeRoot * CubeRoot; END; IF Square # Cube THEN Seen := Seen + 1; WriteCard(Square, 4); WriteLn(); END; UNTIL Seen = Amount END SquareNotCube.