您的位置:首页 > 其它

打印100-200之间的素数(试除法)

2017-04-29 19:40 211 查看
#include<stdio.h>
int main()
{
int i = 0;
int j = 0;
int count = 0;
for (i = 100; i <= 200; i++)
{
for (j = 2; j < i; j++)
{
if (i%j == 0)
break;
}
if (j==i)
{
printf("%d\n", i);
count++;
}
}
printf("\ncount = %d\n", count);
return 0;
}
此程序如果还想在去更好的运行,我们还可以采取一下小小的优化,不妨去观察一下代码整理出:
1.在给i从100赋值的时候,我们找的是素数,所以从101开始,偶数肯定不为素数,所以我们对i采取i+=2,
2.我想去采用开平方来减少一半运算,如果一个数X不为素数,那么X肯定是由两个因子想乘得到的,其中两个因子必有一个小于等于X的开平方,所以我们只需要判断那个小一点的数,这样我们就需要采取算数头文件.优化代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
int i = 0;
int j = 0;
int count = 0;
for (i = 101; i <= 200; i+=2)
{
for (j = 2; j <=sqrt(i); j++)
{
if (i%j == 0)
break;
}
if (j>sqrt(i))
{
printf("%d\n", i);
count++;
}
}
printf("\ncount = %d\n", count);
return 0;
}

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