当前位置:   article > 正文

MATLAB之素数的五种计算方法_matlab求素数

matlab求素数

使用MATLAB实现求素数的方法大同小异,这是在自己做作业时整理的几种,有用的话可以看一下!
NUM.1

y = [];
for i = 1:1:1000;
    for j = 2:1:i-1
        if (mod(i,j)==0) break;%以此判断该数字是否可以被前面的数字整除,
        end
    end
    if i == 2
        y = cat(1,y,2);%cat函数,储存使用
    end
    if(mod(i,j)~=0)
        y = cat(1,y,i);
    end
end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

NUM.2

y = [];
for i = 2 : 1000  %外层循环,i的初值为2,终值为1000
    for j = 2:1000  %内层循环,j的初值为2,终值为1000
        if(~mod(i,j))  % i除以j取余后再取反
            break; % 跳出循环
        end
    end
    if(j > (i/j)) %检查是否有其他除数
        y = cat(1,y,i);%输出素数
    end
end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

NUM.3

y = [];
%%
for k = 2:1:1000
    s = 0;
    for j = 2:1:k-1
        if (mod(k,j)==0)
            s = s + 1;%在此处相当于把s当做一个标志位来使用
        end
    end
    if (s == 0)
        y = cat(1,y,k);
    end
end
%%
y
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

NUM.4

 y = [];
for m = 2:1:1000
    n = fix(sqrt(m))+1;
    for k = 2:n
        if mod(m ,k)==0,break;
        end
    end
    if k==n
        y = cat(1 , y , m);
    end
end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

NUM.5

y = [];
for m = 1:1000
    n = m-1;
    for k = 2:1:n
        if (mod(m ,k)==0) break;
        end
    end
    
    if k==n
        y = cat(1 , y , m);
    end
end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/326379
推荐阅读
相关标签
  

闽ICP备14008679号