為什么要用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
提高效率

注:個人觀點,如有錯誤,還望指出


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM