Java實現求質數(素數)


Java實現求質數(素數)

題目要求:

輸出0-100以內的所有質數(素數)。
質數:只能被 1 和它本身整除的數。
1不是素數也不是合數。

代碼實現:

public class PrimeNumber {

    public static void main(String[] args) {

        Boolean flag = true;

//        long start = System.currentTimeMillis();

        for(int i = 2;i <= 100;i++){
            for(int j = 2;j <= Math.sqrt(i);j++){
                if(i % j == 0){     // i 被 j 整除,不是質數
                    flag = false;   // flag 置為false
                    break;
                }
            }
            if(flag == true){
                System.out.print(i + " ");
            }
            flag = true;            //將 flag 重置為 true
        }

//        long end = System.currentTimeMillis();
//        System.out.println("所花費的時間為:" + (end - start));
    }
}

運行結果:

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 

System.currentTimeMillis()

該方法的作用是返回當前的計算機時間,時間的表達格式為當前計算機時間和GMT時間(格林威治時間)1970年1月1號0時0分0秒所差的毫秒數。返回的是 long 型。可以通過這個方法計算程序的運行時長。

程序擴展:

可以通過修改 i 的值,來輸出其他區間的所有質數。例如:輸出 200 - 300 以內的質數。

public class PrimeNumber {

    public static void main(String[] args) {

        Boolean flag = true;

//        long start = System.currentTimeMillis();

        for(int i = 200;i <= 300;i++){
            for(int j = 2;j <= Math.sqrt(i);j++){
                if(i % j == 0){     // i 被 j 整除,不是質數
                    flag = false;   // flag 置為false
                    break;
                }
            }
            if(flag == true){
                System.out.print(i + " ");
            }
            flag = true;            //將 flag 重置為 true
        }

//        long end = System.currentTimeMillis();
//        System.out.println("所花費的時間為:" + (end - start));
    }
}

輸出結果:

211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293


免責聲明!

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



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