如下语句实现输出1000以内的素数:
for k=1:1000,
for j=2:k-1,
s=(mod(k,j)==0);
if sum(s)<=0
disp(k):
end
end
end
每次输出的数据很奇怪,求大神解决
这是matlab里面的for循环嵌套if的用法。举例说明具体的使用方法,详解如下:
1、首先,创建一个新的子程序loopcolor,如下图所示。
2、其次,完成上述步骤后,定义几个变量,所有变量都是整数类型,代码如下图红框所示。
3、接着,完成上述步骤后,为mycolor分配一个值, mycolor = 0,如下图所示。
4、然后,完成上述步骤后,对myrow进行循环,如下图所示。
5、随后,完成上述步骤后,在myrow循环中嵌套另一个循环mycol,如下图所示。
6、接着,完成上述步骤后,再循环里面,选择单元格并用颜色进行填充,如下图所示。
7、最后,完成上述步骤后,运行该程序,可以看到填充的色块,如下图所示。这就是matlab里面的for循环嵌套if的使用方法。
函数思路:先对1到1000的数K进行循环,从2到K-1进行j循环,如果K能被j整除,那么S=1,并且跳出j这个循环(用break,j后面的循环不用做了),因为肯定不是素数了,如果不能整除那么S最后退出j循环的结果肯定是0,回到K循环,判断一下只要是S等于0,那就是素数,如下所示。
for k=1:1000
for j=2:k-1
s=(mod(k,j)==0);
if s==1
break;
end
end
if s==0
disp(k);
end
end
扩展资料:
for循环其他用法
1、for循环可以有多层嵌套。示例:
#include<stdio.h>
int main(void)
{
int i,j,k;
printf("ijk\n");
for(i=0;i<2;i++)
for(j=0;j<2;j++)
for(k=0;k<2;k++)
printf("%d%d%d\n",i,j,k);
return 0;
}
输出结果为: i j k 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
2、for循环中的变量生存周期为一次循环迭代。
#include<stdio.h>
int main(void)
{
int i;
for(i=0;i<9;i=i+1)
{
int a=i;
printf("%d\n",a);
}
return 0;
}
C语句中变量必须声明在前才能使用,在定义语句之前使用变量是不合法的。
参考资料来源:百度百科-for循环
本回答被网友采纳给力
本回答被提问者和网友采纳