MATLAB不会给出答案

时间:2016-12-02 20:12:50

标签: matlab primes

我在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的任何数字都没有结果:

Enter image description here

1 个答案:

答案 0 :(得分:0)

您的代码存在问题,您不会声明p> 2的状态,而且我认为您声明的行

if p<2
while m<p

不正确,因为你设置m = 2并且该状态不会发生。