题目大意 多组数据,每组数据给出两个正整数 (a,b),请求出 (a,b) 之间的完全平方数的个数。
分析 前缀和即可。
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1E+5 + 5;
int a, b;
int ans[maxn];
int main()
{
for(int i = 1; i * i <= 1E+5; ++i) ans[i * i] = 1;
for(int i = 1; i <= 1E+5; ++i) ans[i] += ans[i - 1];
while(~scanf("%d%d", &a, &b) && a && b)
printf("%d
", ans[b] - ans[a - 1]);
}