Idoneal numbers: Difference between revisions

Added PL/0
(Added 11l)
(Added PL/0)
Line 678:
120 130 133 165 168 177 190 210 232 240 253 273 280
312 330 345 357 385 408 462 520 760 840 1320 1365 1848
</pre>
 
=={{header|PL/0}}==
PL/0 goes for minimalism and so doesn't have a boolean type or "and", "or" and "not" operators.
<syntaxhighlight lang="pascal">
const maxcount = 65;
var count, n, idoneal, a, b, c, ab, aplusb, nminusa, sum, aagain, bagain;
begin
count := 0;
n := 0;
while count < maxcount do begin
n := n + 1;
idoneal := 1;
a := 1;
if a < n then begin
aagain := 1;
while aagain = 1 do begin
nminusa := n - a;
b := a;
if b <= nminusa then begin
bagain := idoneal;
while bagain = 1 do begin
b := b + 1;
ab := a * b;
aplusb := a + b;
c := ( n - ab ) / ( aplusb );
sum := ab + ( c * aplusb );
idoneal := 0;
if c <= b then idoneal := 1;
if sum <> n then idoneal := 1;
bagain := 0;
if b <= nminusa then if sum <= n then bagain := idoneal
end
end;
a := a + 1;
aagain := 0;
if a < n then aagain := idoneal
end
end;
if idoneal = 1 then begin
! n;
count := count + 1
end
end
end.
</syntaxhighlight>
{{out}}
<pre>
1
2
3
4
5
6
7
8
9
10
12
...
760
840
1320
1365
1848
</pre>
 
3,049

edits