Sequence: smallest number with exactly n divisors: Difference between revisions

Add Modula-2
(Add BCPL)
(Add Modula-2)
Line 888:
14 192
15 144</pre>
 
=={{header|Modula-2}}==
<lang modula2>MODULE A005179;
FROM InOut IMPORT WriteCard, WriteLn;
 
CONST Amount = 15;
VAR found, i, ndivs: CARDINAL;
A: ARRAY [1..Amount] OF CARDINAL;
PROCEDURE divisors(n: CARDINAL): CARDINAL;
VAR count, i: CARDINAL;
BEGIN
count := 0;
i := 1;
WHILE i*i <= n DO
IF n MOD i = 0 THEN
INC(count);
IF n DIV i # i THEN
INC(count);
END;
END;
INC(i);
END;
RETURN count;
END divisors;
 
BEGIN
FOR i := 1 TO Amount DO A[i] := 0; END;
found := 0;
i := 1;
WHILE found < Amount DO
ndivs := divisors(i);
IF (ndivs <= Amount) AND (A[ndivs] = 0) THEN
INC(found);
A[ndivs] := i;
END;
INC(i);
END;
FOR i := 1 TO Amount DO
WriteCard(A[i], 4);
WriteLn;
END;
END A005179.</lang>
{{out}}
<pre> 1
2
4
6
16
12
64
24
36
48
1024
60
4096
192
144</pre>
 
=={{header|Nanoquery}}==
2,114

edits