水题:upper_bound,lower_bound解决问题
#include <iostream>
#include <cstdio>
#include <cmath>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
int a,b;
vector<int> squ;
vector<int>::iterator low,up;
for(int i = 1; i <= 1000; i++){
squ.push_back(i*i);
}
while(~scanf("%d%d",&a,&b) && a+b){
low = lower_bound(squ.begin(),squ.end(),a);
up = upper_bound(squ.begin(),squ.end(),b);
cout<<up-low<<endl;
}
return 0;
}