完全平方数的个数
时间限制:6500 ms | 内存限制:65535 KB
难度:2
- 描述
-
给定整数区间[A,B]问其中有多少个完全平方数。
- 输入
- 多组数据,包含两个正整数A,B 1<=A<=B<=2000000000。 输出
- 每组数据输出一行包含一个整数,表示闭区间[A,B]中包含的完全平方数的个数。 样例输入
-
1 1 1 2 3 10 3 3
样例输出 -
1 1 2 0
-
醉了醉了,测试竟然卡将近一小时。就因为我把long long写成long int了......用区间端点开根号相减即可,但需要判定左端点,代码如下:
-
#include<stdio.h> #include<math.h> int main() { int a,b,t; double zhena; int sum; int jiaa,start,end; while(scanf("%d%d",&a,&b)!=EOF) { if(a>b) { t=a;a=b;b=t; } sum=0; zhena=sqrt(a); start=jiaa=sqrt(a); end=sqrt(b); if(zhena!=jiaa) { start++; } sum=end-start; printf("%d\n",sum+1); } return 0; }