试用三种循环求N的所有约数
program divisor;
var
n, c, i : integer;
begin
write('Please enter a positive integer: ');
readln(n);
c := trunc(sqrt(n));
write('Its Divitsors: ');
if c*c = n then c := c-1;
for i := 1 to c do
if n mod i = 0 then
write(i, ', ', n div i, ', ');
if (c+1)*(c+1) = n then write(c+1, ', ');
readln;
end.
program divisor;
var
n, c, i : integer;
begin
write('Please enter a positive integer: ');
readln(n);
i := 1;
c := trunc(sqrt(n));
write('Its Divitsors: ');
if c*c = n then c := c-1;
while i <= c do
begin
if n mod i = 0 then
write(i, ', ', n div i, ', ');
i := i+1;
end;
if (c+1)*(c+1) = n then write(c+1, ', ');
readln;
end.
program divisor;
var
n, c, i : integer;
begin
write('Please enter a positive integer: ');
readln(n);
write('Its Divitsors: ');
if n = 1 then
write(1)
else
begin
i := 1;
c := trunc(sqrt(n));
if c*c = n then c := c-1;
repeat
if n mod i = 0 then
write(i, ', ', n div i, ', ');
i := i+1;
until i > c;
if (c+1)*(c+1) = n then write(c+1, ', ');
end;
readln;
end.


浙公网安备 33010602011771号