MATLAB不会给出答案
问题描述:
我在MATLAB中编写了自己的函数,如果输入数字是素数,它将返回“真”,如果不是,则返回“假”。MATLAB不会给出答案
随着数字0,1和2它的工作,但任何2以上的东西它什么也没做。 (顺便说一句,我重新isprime,所以OBV我不会用在这里。)
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:
因为你设置
答
有一个与你的代码有问题,你没有申报,其中p> 2,也是我认为你宣布
if p<2
while m<p
行的状态是不正确的M = 2和那个状态不会发生。
由于没有专门的matlab知识,所以很显然你没有代码来处理任何'p> 2'的情况。看起来像是最后一个'if'的打字机。不能说超越。 – CollinD
不仅如此,在任何情况下也没有设置“A = false”的代码。因此,即使删除了错字,所有输入数字都会返回为素数。我想'R = false;'是另一个错字,应该是'A = false;'。 –