你的位置:首页 > Java教程

[Java教程]为什么要用Math.sqrt(i)方法


java 练习题

判断 101-200 之间有多少个素数,并输出所有素数

public class Prime {

    public static int count = 0;

    public static void main(String[] args) {

        for (int i = 101; i < 200; i++) {
            boolean b = true;
            for (int j = 2; j <=  Math.sqrt(i); j++) {//---------------

                if (i % j == 0) {
                    b = false;
                    break;
                }
            }
            if (b) {
                System.out.print(i+" ");
                count++;
            }
        }
        System.out.println("\n素数的个数:" + count);
    }
}

发现 第二for循环不用 Math.sqrt(i) 总是有问题

然后,发现了这个问题:为什么要用Math.sqrt(i)方法(返回正确舍入的 double 值的正平方根)?

 因为,只需要判断到这个值,
 例如:判断100,只需要判断到10就可以了,10*10
 100=n1*n2,那么n1或者n2一定有个<=10,所以只需要判断的10
提高效率

注:个人观点,如有错误,还望指出