我在MATLAB中编写了自己的函数,如果输入的数字是素数,则返回“true”,如果不是,则返回“false”。
数字0,1和2可以正常工作,但是如果有超过2的数字则没有做任何事情。 (顺便说一句,我重新创建了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的任何数字都没有结果:
答案 0 :(得分:0)
您的代码存在问题,您不会声明p> 2的状态,而且我认为您声明的行
if p<2
while m<p
不正确,因为你设置m = 2并且该状态不会发生。