程序代码:
#include<stdio.h>
#include<math.h>
main()
{
int a,b,k,i,j,m,n=0;
scanf("%d",&k);
while(k--)
{
scanf("%d%d",&a,&b);
for(i=a;i<=b;i++)
{
m=0;
for(j=2;m==0&&j<=sqrt(i);j++)//用个变量存储sqrt(i)的结果,不然每次循环都要执行一次,
if(i%j==0) m=1;//不用m=1,如果不是就用break,循环外判断j是否大于sqrt(i)来确定是不是素数,
if(m==0) n++;
}
printf("%d\n",n);
n=0;
}
}
下面我修改过的:
程序代码:
#include<stdio.h>
#include<math.h>
main()
{
int a,b,k,i,j,m,n=0;
scanf("%d",&k);
while(k--)
{
scanf("%d%d",&a,&b);
for(i=a;i<=b;i++)
{
m=sqrt(i);
for(j=2;j<=m;j++)
if(i%j==0) break;
if(j>m) n++;
}
printf("%d\n",n);
n=0;
}
}
[
本帖最后由 heroinearth 于 2012-12-5 11:01 编辑 ]