Test Message

a059: 完全平方和

內容

給你一個範圍 a 到 b ,請你找出 a 與 b 之間所有完全平方數的和。

例如:範圍 [3, 25] 中所有完全平方數的和就是 4 + 9 + 16 + 25 = 54 。


輸入

輸入的第一列有一個整數 T (1≦T≦100),代表以下有多少組測試資料。

每組測試資料為兩列,包含兩個數 a 與 b (0≦a≦b≦1000)。

2
1
5
5
35

輸出

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

Case 1: 5
Case 2: 50


解題思路

建平方表,判斷時將符合條件的平方和加總即可。


完整程式碼

AC (2ms, 92KB)
#include <stdio.h>
#define MAX 32

int kase, f, t, sq[MAX];

int main()
{
for (int i = 0; i < MAX; i++)
sq[i] = i * i;
while (scanf(" %d", &kase) == 1)
{
for (int kas = 1; kas <= kase; kas++)
{
scanf(" %d %d", &f, &t);
int i = 0, sum = 0;
while (sq[i] < f)
i++;
do
{
sum += sq[i];
} while (++i < MAX && sq[i] <= t);
printf("Case %d: %d\n", kas, sum);
}
}
return 0;
}