私は与えられた数を因数分解しようとして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またはランタイムエラーが発生しますが、何が問題なのか判断できません。b配列の因子数の長さとしてkを使用しました。インデックスkの問題は何だと思いますか?