#include <stdio.h>
void main()
{
int i,m,sum;
scanf("%d",&m);
for(i=2;i<=m-1;i++)
if(m%i==0)break ;
if(i<=m-1)
printf("%d不是素数\n",m);
else
printf("%d是素数\n",m);
}
懂了吗?追问
如果第一个if不成立break就直接跳出了吗?还用else吗? 还有对于第二个if是不是类似求余数1%2==0?
追答哦,对,是跳出循环,如果m除以i的余数不等于0,才执行下一个if,是第二个范围内的if的话就输出:这个数不是素数。else即不是以上情况的话就输出:这个数是素数。
追问感觉好晕 不过谢谢啊
追答break应该是终止此次循环,进入i+1,这些都执行完了,进入第二个if的判定。这样解释明白吧
追问那么此m就不是素数了吗?
跳出所在一层循环 ,就是说条件符合后直接结束while循环 ,你这是for循环
continue
结束当前循环追问
是跳出if(m%i==0)break ;?如果成立为什么还有if
追答#include
int main(void)
{
int i,m,sum;
scanf("%d",&m);
for(i=2;i<=m-1;i++)
{
if(m%i==0)
break ; //如果m%i == 0 的条件符合的时候, 就会跳出循环,结束程序,因为for循环下面没有语句了,有的话,执行for循环大括号外的语句
if(i<=m-1)
printf("%d不是素数\n",m);
else
printf("%d是素数\n",m);
}
}
成立的话跳出循环了,你的程序没有用括号把下面的if包括进来,要加进来,看我写的,
break了,括号内的程序都不执行了
感觉好晕 不过非常感谢谢谢啊
本回答被网友采纳谢谢啊 可以先解我的燃眉之急吗 谢谢啊