根据素数定义,只能被1和它本身整除的自然数为素数。利用定义可以循环判断该数除以比它小的每一个自然数(不包括1),如果都不能整除,则这个数就是素数。

    由于上述方法效率太低,对此方法进行优化。我们都知道偶数一定不是素数,那只求剩余一般的数。如果一个数是合数,那么它的最小质因数肯定小于等于他的平方根,由合数定理可进一步优化,只需要循环判断该数除以比它的平方根小的每一个自然数(大于1)即可。

    

    C语言代码如下:

#include<stdio.h>
#include<math.h>
int main()
{
 int m,k,i,count=0;
 for(m=101;m<=200;m+=2)
 {   k=(int)sqrt(m);/*(int)sqrt(m)将浮点型转为整型*/
     for(i=2;i<=k;i++)
         if(m%i==0)break;
            if(i>k)
            { 
            count++;
            printf("%d ",m);
            }
 }printf("\ncount=%d",count);
 return 0;
}

    一般说来,程序进入循环体后在下次循环判断之前执行循环体里的所有语句,break和continue语句可以终止循环或忽略某些循环。

break: 此语句导致程序终止包含它的循环,并进行程序的下一阶段(整个循环后面的语句),即不是跳到下一个循环周期而是退出循环。如果break语句包含在嵌套循环里,它只跳出最里面的循环。

continue:循环语句里有此语句时,程序运行到此语句时,不在执行循环体里continue后面的语句而是跳到下一个循环入口处执行下一个循环。如果continue语句包含在嵌套循环语句里,它只影响包含它的最里层的循环。