首先,笔误两个:
c:=0 而不是 c:=o;
b:=i mod a; 而不是 冒号结尾
逻辑错误:
判断c是否小于等于2 的判断应该放在里层循环之外,c的初始化也是.(b无需初始化)
更改之后的:
program ex8;
var
i,a,b,c,d:integer;
begin
for i:=1 to 100 do begin
c:=0;
for a:=1 to i do
begin
b:=i mod a;
if b=0
then c:=c+1;
end;
if c<=2
then writeln('i=',i);
end;
end.
program ex8;
var
i,a,b,c,d:{这里不是“;”}integer;
begin
for i:=1 to 100 do
begin
c:=0;
for a:=1 to i do
begin
{这两句可以删了,不然你的C永远都是0或1}
b:=i mod a;
if b=0
then c:=c+1;
end;{循环要到这里停止}
if c<=2
then writeln('i=',i);{判断因子有几个}
end;
readln;
end.