輸出質數(Java)


輸出質數

一、什么是質數

  質數又稱素數。一個大於1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數,否則稱為合數(規定1既不是質數也不是合數)。

二、代碼實現

1.輸出100以內的質數

import java.util.ArrayList;
import java.util.List;

public class PrimeNumber
{
    /*
    * 1-100
    * 1 3 5 7 11 13 17
    * 只能被1和本身整除
    *
    * */
    public static void main(String[] args)
    {
        boolean flag;
        List<Integer> priArr = new ArrayList<>();
        for (int i=2;i<100;i++)
        {
            flag=true;
            for (int j=2;j<=Math.sqrt(i);j++)//Math.sqrt()方法是對i開根號
            {
                if (i%j==0)
                {
                   flag=false;//如果為false說明這個數不是質數
                   break;
                }
            }
            if (flag)//是質數flag就是ture
            {
                priArr.add(i);
            }
        }
       for (int s:priArr)
       {
           System.out.print(s+“ ”);
       }
    }
}

2.輸入需要輸出多少以內的素數

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class PrimeNumber {
    /*
     * 1-100
     * 1 3 5 7 11 13 17
     * 只能被1和本身整除
     *
     * */
    public static void main(String[] args)
    {
        System.out.println("請輸入需要輸出多少以內的質數:");
        Scanner scanner=new Scanner(System.in);
        int x=scanner.nextInt();
        boolean flag;
        List<Integer> priArr = new ArrayList<>();
        for (int i=2;i<x;i++)
        {
            flag=true;
            for (int j=2;j<=Math.sqrt(i);j++)//Math.sqrt()方法是對i開根號
            {
                if (i%j==0)
                {
                    flag=false;//如果為false說明這個數不是質數
                    break;
                }
            }
            if (flag)//是質數flag就是ture
            {
                priArr.add(i);
            }
        }
        for (int s:priArr)
        {
            System.out.print(s+“ ”);
        }
    }
}

三、運行結果

四、總結

  找質數主要運用了雙重for循環,和用flag作為一個標識。其中外層for對需要查找的數值范圍遍歷,內層for對根號i以內的數值遍歷,通過if判斷利用flag是否變為false來判斷這個數是否為質數,如果是則flag不變,為true,如果flag變為false,則這個數不是質數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM