#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;
}