Idoneal numbers: Difference between revisions

Content deleted Content added
Aerobar (talk | contribs)
Line 684: Line 684:
<syntaxhighlight lang="pascal">
<syntaxhighlight lang="pascal">
const maxcount = 65;
const maxcount = 65;
var count, n, idoneal, a, b, c, ab, aplusb, nminusa, sum, aagain, bagain;
var count, n, idoneal, a, b, c, ab, aplusb, nminusa, sum, bagain;
begin
begin
count := 0;
count := 0;
Line 691: Line 691:
n := n + 1;
n := n + 1;
idoneal := 1;
idoneal := 1;
a := 1;
a := 0;
if a < n then begin
while a < n * idoneal do begin
aagain := 1;
a := a + 1;
while aagain = 1 do begin
nminusa := n - a;
nminusa := n - a;
b := a;
b := a;
if b <= nminusa then begin
if b <= nminusa then begin
bagain := idoneal;
bagain := idoneal;
while bagain = 1 do begin
while bagain = 1 do begin
b := b + 1;
b := b + 1;
ab := a * b;
ab := a * b;
aplusb := a + b;
aplusb := a + b;
c := ( n - ab ) / ( aplusb );
c := ( n - ab ) / ( aplusb );
sum := ab + ( c * aplusb );
sum := ab + ( c * aplusb );
idoneal := 0;
idoneal := 0;
if c <= b then idoneal := 1;
if c <= b then idoneal := 1;
if sum <> n then idoneal := 1;
if sum <> n then idoneal := 1;
bagain := 0;
bagain := 0;
if b <= nminusa then if sum <= n then bagain := idoneal
end
if b <= nminusa then if sum <= n then bagain := idoneal
end
end;
end;
a := a + 1;
aagain := 0;
if a < n then aagain := idoneal
end
end;
end;
if idoneal = 1 then begin
if idoneal = 1 then begin