您的位置:首页 > 其它

素数判断中的一些自己的小问题 break

2016-06-25 09:52 309 查看
如何判断素数:所谓素数是指除了1和它本身以外,不能被任何整数整除的数。如果m不能被2~√m间任一整数整除,m必定是素数。

先放出正确的代码:

#include<stdio.h>
#include<math.h>
int IsPrime(int a)                  //判断是否为素数
{
int j;
int k = (int)sqrt(a);
for (j = 2; j <= k; j++)
{
if (a % j == 0)
break;          //break跳出for循环
}

if (j>k)                      //执行完for循环(没有执行过break语句)  最后j++ 此时 j = k+1
{
printf("%2d ", a);
}

}
int main()
{
for (int i = 100; i <= 200; i++)
{
IsPrime(i);
}
getchar();
return 0;
}


然后说说 关于break的问题:

break 语句是限定转向语句,它使流程跳出所在的结构之后。break语句在循环结构中的作用是相同的:跳出所在的循环结果,转向执行该循环结构后面的语句。如for。while。do-while 循环语句

break通常与if语句关联在一起:满足条件就跳出循环,不是跳出if语句

(1)break语句对if-else语句不起作用,(不是跳出if语句)

(2)在多层循环中,一个break语句只是向外跳出一层循环

ps:关于break,continue的区别 下次再写

关于自己的问题 注意是错误的

for (j = 2; j <= k; j++)
{
if (a % j == 0)
break;
else                        //即a%j!=0   这段代码只是判断了能不能被2整除;
 {
printf("%2d  ",a);  //printf输出的是奇数,并不是偶数;
 break;
}
}
这段代码 for循环 根本就没有意义

ps: 有时候 真是自己写的东西 自己都看不懂 真是有点蠢..............

突然感觉自己的脑袋不够用了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: