溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Eratosthenes篩選求質數的方法是什么

發(fā)布時間:2021-12-20 14:10:44 來源:億速云 閱讀:117 作者:iii 欄目:云計算

這篇文章主要介紹“Eratosthenes篩選求質數的方法是什么”,在日常操作中,相信很多人在Eratosthenes篩選求質數的方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Eratosthenes篩選求質數的方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

import java.util.Scanner;

public class Eratosthenes {

    static void getPrimes(int num){
        int []arr = new int[num +1];//長度為11的數組,能夠存下表為0-10的數組,所以取10以內的數組,需要申請11長度的數組
        for (int i = 1; i <= num; i++){
            arr[i] = i;
        }
        arr[1] = 0;//1不是素數,排除1

        for (int i = 2; i < Math.sqrt(num); i++){
            for (int j = i+1; j < num; j++){
                if (arr[j] != 0 && arr[j]%i == 0){
                    arr[j] = 0;
                }
            }
        }

        for (int i = 0; i < num; i++){
            if (arr[i] != 0){
                System.out.printf(arr[i]+"\t");
            }
        }
    }


    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.printf("請輸入查詢值:");
        int num = scanner.nextInt();
        getPrimes(num);



    }
}

===============================


import java.util.Scanner;

public class CheckPrime {


    static boolean isCheck(int x){
        for (int i = 2; i < x; i++){
//        for (int i = 2; i <= Math.sqrt(x); i++){
            if (x % 2 == 0){
                return false;
            }
        }
        return true;

    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int x = scanner.nextInt();
        System.out.println(isCheck(x));
    }
}
/**
 * 2是素數,1不是素數
 *
 * 排除異常樹
 * if(n < 2) return false;
 *
 * 偶數一定不適素數
 * if(n%2==0) return false;
 *
 * 定理: 如果n不是素數, 則n有滿足1< d<=sqrt(n)的一個因子d.
  證明: 如果n不是素數, 則由定義n有一個因子d滿足1< d< n.
  如果d大于sqrt(n), 則n/d是滿足1< n/d<=sqrt(n)的一個因子.

   sqrt()是開方,開方的兩個數是相等的,4*4=14,如果一個數大約平方根,那么另一個數一定小于平方根,才能滿足二者的乘積等于兩個平方根的積


 1、素數及相關

 素數,又稱質數,在一個大于1的自然數中,除了1和此整數自身之外,不能被其他自然數整除的數。
 比1大但不是素數的數稱為合數。
 1和0既不是素數,也不是合數。
 算術基本定理證明每個大于1的正整數都可以寫成素數的乘積,并且這種乘積的形式是唯一的。


 */

到此,關于“Eratosthenes篩選求質數的方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI