#include<stdio.h>
int main()
{
   int i=0,count=0;
   int j=0;
   for(i=100;i<=200;i++)
   { 
   for(j=2;j<=i-1;j++)
{
   if(i%j==0)
   {break;
   }
}
   if(j==i)
   { printf("%d ",i);
   count++;
   }
   }
   printf("\ncount=%d\n",count);
   return 0;
}

优化

1,、由于素数不可能是偶数因此素数i可以是          i=101;i<200;i+=2;

2、一个数的素数一定有一个数<=它的一半所以    j=2;j<=i/2;j++;

3、一个数的素数一定有一个数<=它的平方根则    j=2;j<=sqrt(i);j++;

代码如下:

#include<stdio.h>
int main()
{
int i=0;
int j=0;
int count=0;
for(i=101;i<=200;i+=2)
{
for(j=2;j<=i/2;j++)
{
if(i%j==0)
{
break;
}
}
if(j>(i/2))
{
printf("%d ",i);
count++;
}
}
printf("\n%d\n",count);
return 0;
}

 

#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 ",i);
count++;
}
}
printf("\ncount=%d\n",count);
return 0;
}