改进1:n只需要被2~√n之间的数整除即可
#include<stdio.h>
#include<math.h>
int main()
{
int n, i,k;
for (n = 100; n <= 200; n++)
{
k = sqrt(n);
for (i = 2; i <=k; i++)
{
if (n%i == 0)break;
{
if (i >= k)
{
printf("%d ", n);
}
}
}
}
system("pause");
return 0;
}
运行结果如下:
改进2:所有偶数都不是素数,所以在循环过程中可以只对奇数进行判定
#include<stdio.h>
#include<math.h>
int main()
{
int n, i, k;
for (n = 101; n <= 200; n+=2)
{
k = sqrt(n);
for (i = 2; i <= k; i++)
{
if (n%i == 0)break;
{
if (i >= k)
{
printf("%d ", n);
}
}
}
}
system("pause");
return 0;
}