這篇文章主要介紹了java如何打印N以內的所有質數,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
問題:
打印出N以內所有質數
思路:
質數的定義是它的因子只有1和它本身,因此我們在判斷的時候可以根據遍歷到的數是不是有除了1和它本身之外的因子。同時我們知道如果有因子(即如果是合數)那么,因子必定是小于這個數的,我們就排除掉。
代碼實現:
package Algorithm.Interview;
import java.util.ArrayList;
import java.util.List;
public class primeNum {
public List<Integer> PrintPrime(int n){
List<Integer> Prime = new ArrayList<>();
//2也是質數
Prime.add(2);
//外循環遍歷N以內的所有數,1不是質數,2是質數,所以從2開始遍歷
for (int i = 2; i <= n; i++) {
//內循環遍歷小于要判斷的數的因子,即要判斷的數是否有除了1和它本身的因子
for (int j = 2; j < i; j++) {
//如果有因子,直接跳出內循環,到外循環遍歷下一個數
if (i % j == 0){
break;
}
//如果沒有因子,判斷j = i-1這個數,能循環到i-1說明之前的j都沒有跳出循環,來判斷最后一個小于i的數是不是i的因子
else if (j == i -1 && i % j != 0){
Prime.add(i);
}
}
}
return Prime;
}
public static void main(String[] args) {
primeNum primeNum = new primeNum();
System.out.println(primeNum.PrintPrime(100));
}
}感謝你能夠認真閱讀完這篇文章,希望小編分享java如何打印N以內的所有質數內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。