matlab的一道求素数的题目

来源:百度知道 编辑:UC知道 时间:2024/06/28 03:24:57
function a=sushu(m)
k=sqrt(m);
for i=2:k
if rem(m,i)==0
break;
end
end
if(i>k)
a=1;
else
a=0;
end
老是运行不出来,帮忙看看怎么回事?

matlab里面的循环变量和c不一样
在matlab里for i=2:k, 结束循环以后,i的最终值是不大于k的整数
而c,c++,里面for (i=2; i<=k; i++),循环结束以后,i的最终值是大于k
所以你的函数里 if(i>k)总是false

可以考虑用一个flag

function a=sushu(m)
k=sqrt(m);
flag=0;
for i=2:k
if rem(m,i)==0
flag=1;
break;
end
end
if(flag=0)
a=1;
else
a=0;
end