您好,登錄后才能下訂單哦!
這篇文章主要介紹了java如何打印N以內(nèi)的所有質(zhì)數(shù),具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
問題:
打印出N以內(nèi)所有質(zhì)數(shù)
思路:
質(zhì)數(shù)的定義是它的因子只有1和它本身,因此我們?cè)谂袛嗟臅r(shí)候可以根據(jù)遍歷到的數(shù)是不是有除了1和它本身之外的因子。同時(shí)我們知道如果有因子(即如果是合數(shù))那么,因子必定是小于這個(gè)數(shù)的,我們就排除掉。
代碼實(shí)現(xiàn):
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也是質(zhì)數(shù) Prime.add(2); //外循環(huán)遍歷N以內(nèi)的所有數(shù),1不是質(zhì)數(shù),2是質(zhì)數(shù),所以從2開始遍歷 for (int i = 2; i <= n; i++) { //內(nèi)循環(huán)遍歷小于要判斷的數(shù)的因子,即要判斷的數(shù)是否有除了1和它本身的因子 for (int j = 2; j < i; j++) { //如果有因子,直接跳出內(nèi)循環(huán),到外循環(huán)遍歷下一個(gè)數(shù) if (i % j == 0){ break; } //如果沒有因子,判斷j = i-1這個(gè)數(shù),能循環(huán)到i-1說(shuō)明之前的j都沒有跳出循環(huán),來(lái)判斷最后一個(gè)小于i的數(shù)是不是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)); } }
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享java如何打印N以內(nèi)的所有質(zhì)數(shù)內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。