PASCAL帮忙翻译下。谢谢了

来源:百度知道 编辑:UC知道 时间:2024/06/06 18:06:45
var i,j,n:integer;
begin
assign(output,'ot.out');
rewrite(output);
for i:=2 to 100 do
begin
write(i,'=');
n:=i;
while n>1 do
begin
for j:=2 to n do
if n mod j=0 then
begin
if n div j=1 then write(j)
else write(j,'*');
break;
end;
n:=n div j;
end;
writeln;
end;
close(output);
end.

这个程序是把100以内的数分解质因数,就是把一个数写成几个质数相乘的形式
我就不每一句都给你解释了,我解释那个比较主要的东西
for i:=2 to 100 do
begin
write(i,'=');
n:=i;
while n>1 do {当目前的n值比1大的时候开始循环}
begin
for j:=2 to n do {j从2开始枚举到n}
if n mod j=0 then {如果j能被n整除开始}
begin
if n div j=1 then write(j) {如果n比j大但比j的二倍小,就输出j}
else write(j,'*'); {否则,输出j,‘*’}
break; {跳出for j:=2 to n do这层循环}
end;
n:=n div j; {把n的值变成n整除j的值}
end;
writeln; {换行,回到最外层循环中}
end;

穷举