輸出質數
一、什么是質數
質數又稱素數。一個大於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,則這個數不是質數。
