32 lines
527 B
Text
32 lines
527 B
Text
MODULE DigitsSquaring;
|
|
IMPORT
|
|
Out;
|
|
|
|
VAR
|
|
i,hits89: LONGINT;
|
|
|
|
PROCEDURE Squaring(n: LONGINT): LONGINT;
|
|
VAR
|
|
d, sum: LONGINT;
|
|
BEGIN
|
|
LOOP
|
|
sum := 0;
|
|
WHILE n > 0 DO
|
|
d := n MOD 10;
|
|
INC(sum,d * d);
|
|
n := n DIV 10
|
|
END;
|
|
IF (sum = 1) OR (sum = 89) THEN EXIT END;
|
|
n := sum;
|
|
END;
|
|
|
|
RETURN sum
|
|
END Squaring;
|
|
|
|
BEGIN
|
|
hits89 := 0;
|
|
FOR i := 1 TO 100000000 DO
|
|
IF Squaring(i) = 89 THEN INC(hits89) END
|
|
END;
|
|
Out.LongInt(hits89,0);Out.Ln
|
|
END DigitsSquaring.
|