您的位置:首页 > 编程语言 > C语言/C++

C语言之判断100~200之间的素数(质数)

2017-03-05 23:29 351 查看
题目描述:编写程序找出100~200之间的个素数,并输出所有素数。

素数的定义:在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数。

所以本题的思路是将一个数除以2到本身减1,不过我们只需要将一个数除以2到本身的开根号即可,这样更加提高程序的效率。

# include <stdio.h>
# include <math.h>

int main()
{
int i, m, k, h = 0, leap = 1;

for (m=100; m<=200; m++)
{
k = (int)sqrt(double(m));//当一个数若不能被从2开始,到自身开根号为止这个范围内的整数整除,它就是素数了。
//这样减少运算次数,提高了程序效率

for (i = 2; i<=k; i++)
{
if (m%i == 0)
{
leap=0;
break;          //此处的break终止的是整个for循环(注:在for中的if中如果执行了break就终止了整个for循环)
}
}
if (leap)
{
printf("%-4d", m);      //三位数,加多一个空格
h++;
if (h % 10 == 0)    //够十个,过下一行
printf("\n");
}

leap = 1;           //leap重新赋值1

}
printf("\n");

}


运行环境:vs2010

运行结果:

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