码迷,mamicode.com
首页 > 其他好文 > 详细

为什么要用Math.sqrt(i)方法

时间:2016-08-16 01:53:26      阅读:715      评论:0      收藏:0      [点我收藏+]

标签:

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
提高效率

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

为什么要用Math.sqrt(i)方法

标签:

原文地址:http://www.cnblogs.com/brokencolor/p/5774824.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!