#include<stdio.h>
int main()
{
int i = 0;
int j = 0;
for(i = 100; i <= 200; i++)
{
for(j = 2; j < i; j++)
{
if(i % j == 0)
break;
}
if(j >= i)
printf("%d ", i);
}
printf("\n");
return 0;
}
下面方法运算次数更少:
#include<stdio.h>
#include<math.h>
int main()
{
int i = 0;
int j = 0;
for(i = 100; i <= 200; i++) //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 " ,i);
}
printf("\n");
return 0;
}
运行结果:

本文对比了两种不同的素数筛选算法:一种是遍历所有小于目标数的整数进行除法判断;另一种则是利用数学性质,仅遍历到根号n的范围,显著减少了运算次数。后者使用了平方根函数和数学头文件,提高了效率。
5015

被折叠的 条评论
为什么被折叠?



