a059

輸入說明 :

輸入的第一列有一個整數 T (1≦T≦100),代表以下有多少組測試資料。 每組測試資料為兩列,包含兩個數 a 與 b (0≦a≦b≦1000)。

輸出說明 :

每組測試資料輸出一列,內容為 a 及 b 間所有完全平方數的和。

題目說b的範圍不超過1000,所以找1~31的完全平方數即可,每次判斷有沒有超過b的範圍(加快速 度)

#include<stdio.h>
#include<math.h>
int main(){
    int T;
    int i,j;
    int a,b;
    int temp;
    int sum;
    scanf("%d",&T);
    for(i=0;i<T;i++)
    {   
        sum=0;
        scanf("%d %d",&a,&b);
        for(j=1;j<31;j++)
        {   
             temp=pow((double)j,2);
             if(b<temp)
             break;
            if(a<=temp&&temp<=b)
                sum+=temp;            
        }
        printf("Case %d: %d\n",i+1,sum);
    }
return 0;
}