给定整数区间[A,B]问其中有多少个完全平方数。
输入格式: 多组数据,包含两个正整数A,B 1<=A<=B<=2000000000。
输出格式: 每组数据输出一行包含一个整数,表示闭区间[A,B]中包含的完全平方数的个数。
挑战规则:
输入样例 1 1 1 2 3 10 3 3
输出样例: 1 1 2 0
题目分析:这道题首先想到的是【A,B】区间从A依次取数判断是否为完全平方数,可是这样很耗时,效率不是很高。
我的想法是:完全平方数就是 1 4 9 16 ......我们依次判断这些数是否在区间内,这样效率高些。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner read=new Scanner(System.in);
while(read.hasNext()){
int a=read.nextInt();
int b=read.nextInt();
int count=0;
for(int i=1;i*i<=b;i++){
if(i*i>=a)count++;
}
System.out.println(count);
}
}
}