-4
MATLABで独自の関数を書いていますが、入力番号が素数なら「真」、そうでなければ「偽」が返されます。MATLABは答えを教えてくれません
数字が0,1,2の場合は動作しますが、2を超える場合は何もしません。 (ところで、私はそうOBV、私はここにいることを使用することはありません、isprimeを再作成。)
function [A] = myprime(p)
m = 2;
if p<1
disp('Number too low')
end
if p == 1
A = false;
end
if p == 2
A=true;
end
if p < 2
while m < p
A = true;
x = mod(p, m);
if x == 0
m=p;
R=false;
end
m=m+1;
end
end
end
あなたが見ることができるように、それは0,1及び2の結果を得られず、2以上の任意の数の何も:
特にmatlabについて知りませんが、 'p> 2 'の場合を処理するコードはありません。可能であれば最後の 'if'の型のように見えます。それを超えては言えない。 – CollinD
それだけでなく、 'A = false; 'を設定するコードもありません。したがって、タイプミスがあっても、すべての入力番号が素数で返されます。私は 'R = false;が別のタイプミスで、' A = false; 'であるはずです。 –