#16287: 我自己用99990000 100000000都過了 為何??


hq8398 (一群牛)


#include<stdio.h>
#include<math.h>
int main()
{
long int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
{
int ans=0;
for(int i=a;i<=b;i++)
{
int count=0;
for(int j=2;j<=sqrt(b);j++)
{
if(i%j==0)
count++;
}
if(count==0)
ans++;
}
printf("%d\n",ans);
}
return 0;
}

 

#16288: Re:我自己用99990000 100000000都過了 為何??


314159265358979323846264338327 ... (少年π)


#include
#include
int main()
{
long int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
{
int ans=0;
for(int i=a;i<=b;i++)
{
int count=0;
for(int j=2;j<=sqrt(b);j++)
{
if(i%j==0)
count++;
}
if(count==0)
ans++;
}
printf("%d\n",ans);
}
return 0;
}

 

粗體是錯的地方,斜體是建議

1.sqrt(b)改成sqrt(i)
2.除了count要等於0,再加入i!=1(1不是質數)

建議:count加1次就可以break,不然會浪費時間