首页 > 其他 > 详细

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

时间:2016-08-16 01:51:05      阅读:164      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!