a121
輸入說明 :
輸入兩個正整數a,b(1<=a<=b<=100000000)。 保證b-a<=1000
輸出說明 :
輸出一個非負整數,代表a到b之間(包含a,b)總共有幾個質數。
找質數其實就是去判斷,2到自己開根號中間有沒有餘數,為什麼是自己開根號呢? 因為假如你有因數的話,這個因數會是成對的,兩個成對的因數相乘等於自己,所以其中一個一定會小於等於自己開根號
#include<stdio.h>
#include<math.h>
int main()
{
int a,b,i,j,flag,count,root;
while(scanf("%d %d",&a,&b)!=EOF)
{
count=0;
for(i=a;i<=b;i++)
{
root=sqrt(i);
flag=0;
for(j=2;j<=root;j++)
{
if(i%j==0)
{
flag=1;
break;
}
}
if(i==1);
else if(flag!=1|| i==2)
{
count++;
}
}
printf("%d\n",count);
}
return 0;
}