以下pascal代码中的运行时错误

时间:2012-10-27 19:46:31

标签: 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:=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的问题是什么?

1 个答案:

答案 0 :(得分:0)

你应该定义D:= 2;就在Begin:D之后,因为它的默认值是0。