Anti-primes: Difference between revisions
Content added Content deleted
Langurmonkey (talk | contribs) |
(→{{header|PL/0}}: Added a solution.) |
||
Line 2,880: | Line 2,880: | ||
5040 |
5040 |
||
7560</pre> |
7560</pre> |
||
=={{header|PL/0}}== |
|||
<syntaxhighlight lang="pascal"> |
|||
var i, n, maxdivcnt, divcnt; |
|||
procedure countdivs; |
|||
var p; |
|||
begin |
|||
divcnt := 1; |
|||
if n > 1 then divcnt := 2; |
|||
p := 2; |
|||
while p * p < n do |
|||
begin |
|||
if (n / p) * p = n then divcnt := divcnt + 2; |
|||
p := p + 1 |
|||
end; |
|||
if p * p = n then divcnt := divcnt + 1 |
|||
end; |
|||
procedure searchnext; |
|||
begin |
|||
call countdivs; |
|||
while divcnt <= maxdivcnt do |
|||
begin |
|||
n := n + 1; |
|||
call countdivs |
|||
end |
|||
end; |
|||
begin |
|||
i := 1; n := 1; maxdivcnt := 0; |
|||
while i <= 20 do |
|||
begin |
|||
call searchnext; |
|||
maxdivcnt := divcnt; |
|||
i := i + 1; |
|||
! n; |
|||
n := n + 1 |
|||
end |
|||
end. |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
1 |
|||
2 |
|||
4 |
|||
6 |
|||
12 |
|||
24 |
|||
36 |
|||
48 |
|||
60 |
|||
120 |
|||
180 |
|||
240 |
|||
360 |
|||
720 |
|||
840 |
|||
1260 |
|||
1680 |
|||
2520 |
|||
5040 |
|||
7560 |
|||
</pre> |
|||
=={{header|PL/I}}== |
=={{header|PL/I}}== |