我正在考虑给定一个数字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的问题是什么?
答案 0 :(得分:0)
你应该定义D:= 2;就在Begin:D之后,因为它的默认值是0。