尝试编译"直到"预期发现"其他"时发生致命错误,似乎无法解决问题
......
begin
divisor:= 2;
cont:= 0;
write(i,':');
repeat
if (i mod divisor = 0) then
begin
write(' divisor ');
divisor:=succ(divisor);
cont:=succ(cont);
end;
else
divisor:=succ(divisor);
until (cont = 6) or (divisor>i div 2)
writeln();
end;
end;
end.
Run Code Online (Sandbox Code Playgroud)
问题是end;之前你有一个分号else.这基本上终止了if语句,因此else变为elseto repeat(显然无效).解决方法是删除分号后end;
请参阅此参考:http://wiki.freepascal.org/Else
固定:
if (i mod divisor = 0) then
begin
write(' divisor ');
cont:=succ(cont);
end
else
divisor:=succ(divisor);
Run Code Online (Sandbox Code Playgroud)