早教吧 育儿知识 作业答案 考试题库 百科 知识分享

用筛选法求某自然数范围内的全部素数.素数是大于1,且除了1和它本身以外,不能被其他任何整数所整除的整数。用筛选法求素数的基本思想是:要找出2~m之间的全部素数,首先在2~m中划去2

题目详情
用筛选法求某自然数范围内的全部素数.
素数是大于1,且除了1和它本身以外,不能被其他任何整数所整除的整数。用筛选法求素数的基本思想是:要找出2~m之间的全部素数,首先在2~m中划去2的倍数(不包括2),然后划去3的倍数(不包括3),由于4已被划去,再找5的倍数(不包括5),...到在划去不超过m的数的倍数,剩下的都是素数。(注:用matlab处理此问题)
▼优质解答
答案和解析
%%
clc;
clear;
m = linspace(1,100,100)
flag = 0;
res = 0;
for i = 3:length(m)
for j = 2:i-1
if mod(m(i),j) == 0
flag = 1;
break;
else
flag = 0;
end
end
if flag == 0
r = [res,m(i)];
res = r;
end
end
r(2:length(r))