篩法選素數

/*
    用篩法求n之前的所有素數
     */
    void 素數(int n){
        /*
        一個數 n 如果是合數,那麼它的所有的因子不超過sqrt(n)--n的開方,
        那麼我們可以用這個性質用最直觀的方法來求出小於等於n的所有的素數。
         */
        int p = 0;
        int[] judge = new int[0];//初始化爲1
        int[] prime = new int[0];
        for(int i = 2; i < n; i++){
            if (judge[i]==1){
                prime[p++] = i;
                
                //把當前數的倍數去除掉
                for(int j = i; j<=n;j+=i){
                    judge[j] = 0;
                }
            }
        }
        for(int i = 0; i<p; i++){
            System.out.println(prime[i]);
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章