溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

java如何打印N以內(nèi)的所有質(zhì)數(shù)

發(fā)布時(shí)間:2020-10-27 09:54:42 來(lái)源:億速云 閱讀:371 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹了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í)!

向AI問一下細(xì)節(jié)

免責(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)容。

AI