Harshad or Niven series: Difference between revisions

Add Modula-2
(Add PILOT)
(Add Modula-2)
Line 2,787:
<pre>1 2 3 4 5 6 7 8 9 10 12 18 20 21 24 27 30 36 40 42
First harshad number larger than 1000 is 1002</pre>
 
=={{header|Modula-2}}==
<lang modula2>MODULE Harshad;
FROM InOut IMPORT WriteString, WriteCard, WriteLn;
 
VAR n, i: CARDINAL;
 
PROCEDURE DigitSum(n: CARDINAL): CARDINAL;
VAR sum: CARDINAL;
BEGIN
sum := 0;
WHILE n > 0 DO;
sum := sum + n MOD 10;
n := n DIV 10;
END;
RETURN sum;
END DigitSum;
 
PROCEDURE NextHarshad(n: CARDINAL): CARDINAL;
BEGIN
REPEAT INC(n);
UNTIL n MOD DigitSum(n) = 0;
RETURN n;
END NextHarshad;
 
BEGIN
n := 0;
WriteString("First 20 Harshad numbers:");
WriteLn();
FOR i := 1 TO 20 DO
n := NextHarshad(n);
WriteCard(n, 3);
END;
WriteLn();
WriteString("First Harshad number above 1000: ");
WriteCard(NextHarshad(1000), 4);
WriteLn();
END Harshad.</lang>
{{out}}
<pre>First 20 Harshad numbers:
1 2 3 4 5 6 7 8 9 10 12 18 20 21 24 27 30 36 40 42
First Harshad number above 1000: 1002</pre>
 
=={{header|min}}==
2,096

edits