Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
60
Task/Smith-numbers/Modula-2/smith-numbers.mod2
Normal file
60
Task/Smith-numbers/Modula-2/smith-numbers.mod2
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
MODULE SmithNumbers;
|
||||
FROM FormatString IMPORT FormatString;
|
||||
FROM Terminal IMPORT WriteString,WriteLn,ReadChar;
|
||||
|
||||
PROCEDURE SumDigits(n : INTEGER) : INTEGER;
|
||||
VAR sum : INTEGER;
|
||||
BEGIN
|
||||
sum := 0;
|
||||
WHILE n > 0 DO
|
||||
sum := sum + (n MOD 10);
|
||||
n := n DIV 10;
|
||||
END;
|
||||
RETURN sum;
|
||||
END SumDigits;
|
||||
|
||||
VAR
|
||||
n,i,j,fc,sum,rc : INTEGER;
|
||||
buf : ARRAY[0..63] OF CHAR;
|
||||
BEGIN
|
||||
rc := 0;
|
||||
FOR i:=1 TO 10000 DO
|
||||
n := i;
|
||||
fc := 0;
|
||||
sum := SumDigits(n);
|
||||
|
||||
j := 2;
|
||||
WHILE n MOD j = 0 DO
|
||||
INC(fc);
|
||||
sum := sum - SumDigits(j);
|
||||
n := n DIV j;
|
||||
END;
|
||||
|
||||
j := 3;
|
||||
WHILE j*j<=n DO
|
||||
WHILE n MOD j = 0 DO
|
||||
INC(fc);
|
||||
sum := sum - SumDigits(j);
|
||||
n := n DIV j;
|
||||
END;
|
||||
INC(j,2);
|
||||
END;
|
||||
|
||||
IF n#1 THEN
|
||||
INC(fc);
|
||||
sum := sum - SumDigits(n);
|
||||
END;
|
||||
|
||||
IF (fc>1) AND (sum=0) THEN
|
||||
FormatString("%4i ", buf, i);
|
||||
WriteString(buf);
|
||||
INC(rc);
|
||||
IF rc=10 THEN
|
||||
rc := 0;
|
||||
WriteLn;
|
||||
END;
|
||||
END;
|
||||
END;
|
||||
|
||||
ReadChar;
|
||||
END SmithNumbers.
|
||||
Loading…
Add table
Add a link
Reference in a new issue