C语言多重for语句的运算过程具体怎么样的
#include#includeintmain(intargc,char*argv[]){inta,b,i;scanf("%d",&a);for(i=a;i>0;i--)...
#include#includeint main(int argc, char *argv[]){ int a,b,i; scanf("%d",&a); for (i=a;i>0;i--) { for (b=2;b<i;b++) if (i%b==0) break; if (b==i) { printf("The max prime number is %d.\n",i); break; }} system("PAUSE"); return 0;}比如这个求最大素数的 是怎么样循环运算的···
展开
1个回答
展开全部
代码对齐如下:
#include <stdio.h>
int main(int argc, char *argv[])
{
int a,b,i;
scanf("%d",&a);
for (i=a;i>0;i--)
{
for(b=2;b<i;b++)
if (i%b==0) break;
if (b==i)
{
printf("The max prime number is %d.\n",i);
break;
}
}
system("PAUSE");
return 0;
}
第一个for循环表示从最大的数开始,发现的第一个素数就是最大的素数。比如输入a=12,第一次循环i=12(不是素数),第二次循环i=11(是素数),并且11就是最大的素数。
第二循环用来判断i是不是素数。如果i是素数的话,从b=2到b=i-1的数都不能整除i,于是for(b=2;b<i;b++)会一直循环到b=i(这时循环会自动结束);如果i不是素数的话,循环会因为执行了break导致退出循环后b<i。所以后面的用(b==i)来判断i是不是素数,如果不是的话,b小于i;如果是的话,b等于i。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询