matlab用function定义函数求1000以内素数

img

你好,代码供参考(用的筛法):

function [N, S]=SuShu(n)
% N表示所有素数构成的集合
% S表示所有素数之和
% n表示输入的正整数
p = 1:n;
q = true(1,n); q(1,1)=false;
for i=1:floor(sqrt(n))
   if(q(i))
       q(i^2:i:end)=false;
   end
end
N = p(q);
S = sum(N);
end

调用示例:

 [N, S]=SuShu(100)

N =

  列 1 至 17

     2     3     5     7    11    13    17    19    23    29    31    37    41    43    47    53    59

  列 18 至 25

    61    67    71    73    79    83    89    97


S =

        1060

还行吧?有帮助还请题主给个采纳支持一下答主答题哟,谢谢啦