以下pascal代码中的运行时错误
我试图将给定的数字以下pascal代码中的运行时错误,pascal,prime-factoring,Pascal,Prime Factoring,我试图将给定的数字a,因此我编写了以下Pascal代码: program prime_factors; var b:array[1..1000] of integer; k,i,d,a:integer; begin k:=0; write(' enter number '); read(a); while a>1 do if a mod d =0 then begin k:=k+1; b[k]:=d;
a
,因此我编写了以下Pascal代码:
program prime_factors;
var b:array[1..1000] of integer;
k,i,d,a:integer;
begin
k:=0;
write(' enter number ');
read(a);
while a>1 do
if a mod d =0 then
begin
k:=k+1;
b[k]:=d;
a:=a div d;
end
else
if d=2 then
d:=d+1
else
d:=d+2;
for i:=1 to k do
write(b[i],' ');
readln();
readln();
end.
但当我运行它时,它会给我错误200或运行时错误,但我无法确定是什么问题。我使用k作为b数组中因子数的长度。我应该想想索引k有什么问题吗?你应该定义D:=2;就在Begin:D之后,因为它的默认值是0。找到了我的错误,我没有初始化dEach运行时错误代码,因为它有相关的描述。错误200被零除,这应该表明d确实是罪魁祸首,因为代码中的所有除法操作(mod,div)都使用d作为分母。