matlab 程序 求10到100的素数,请问错在哪里?

clear
result=[];
for i=10:100
for j=2:i-1
if mod(i,j)==0
mark=0;
else
mark=1;

end
end
if mark==1
result=[result i];
end
end
result
求10到100的素数,请问错在哪里?

mark重复赋值,导致出错,比如10,for循环到9的时候mark值赋1,退出循环之后10就被认为是素数了,应该在mark为0的时候退出循环,此数已可以判定为合数

result=[];
for i=10:100
for j=2:i-1
if mod(i,j)==0
mark=0;
break;%加上这句
else
mark=1;
end

end

if mark==1
result=[result i];
end
end
result
温馨提示:答案为网友推荐,仅供参考
相似回答