完全平方数的个数
题目详情:
给定整数区间[A,B]问其中有多少个完全平方数。
输入格式:
多组数据,包含两个正整数A,B 1<=A<=B<=2000000000。
输出格式:
每组数据输出一行包含一个整数,表示闭区间[A,B]中包含的完全平方数的个数。
答题说明:
输入样例
1 1
1 2
3 10
3 3
输出样例:
1
1
2
0
#include<stdio.h>
#include<math.h>
int func(int x, int y);
int main()
{
int m, n;
while(scanf("%d %d", &n, &m) != EOF)
{
printf("%d\n", func(n, m));
}
return 0;
}
int func(int x, int y) // 计算所求区间的完全平方数的个数
{
int i, j, temp;
double k;
j = 0;
k = sqrt(x); // 将所求区间中的最小数开方
for(i = k; temp < y; i++) // 将所求最小数开方结果加1,平方,如果小于该区间的最大数,则j加一
{ // 由于k为double型,i为int型, 所以i <= k, i*i 小于等于该区间的最小数
temp = i*i;
if(temp >= x && temp <= y)
{
j++;
}
}
return j;
}