我們首先來了解下素數的定義,素數不能被除了1和它本身之外的數整除,也就是說我們可以使用for循環進行判斷
Scanner in = new Scanner(System.in);
System.out.println("請輸入一個數(N),将會列出(1~N)之間的素數");
int n = in.nextInt();
boolean[] b = new boolean[n+]; //建立一個辨別符數組,長度為n+1
for (int i = ; i <= n; i++) { //數組下标從3開始
b[i] = true; //将true指派給b[i]
for (int j = ; j < i; j++) {
if (i % j == ) //如果i可以被j整除,則它不是素數
b[i] = false; //将false指派給b[i]
}
}
通過上面的代碼,可以發現,當某個數字i被判斷為不是素數是,與之對應的b[i]則為false,也就是說,b數組中為true的數組下标就是素數
System.out.print(); //2是素數
for (int m = ; m < b.length; m++) {
if (b[m] == true)
System.out.print(" " + m);
}
完整代碼如下
package com.lenovo.work19;
import java.util.Scanner;
public class PrimeNumber {
public static void main(String[] args) {
boolean f;
Scanner in = new Scanner(System.in);
System.out.println("請輸入一個數(N),将會列出(1~N)之間的素數");
int n = in.nextInt();
boolean[] b = new boolean[n+];
for (int i = ; i <= n; i++) {
b[i] = true;
for (int j = ; j < i; j++) {
if (i % j == )
b[i] = false;
}
}
System.out.print();
for (int m = ; m < b.length; m++) {
if (b[m] == true)
System.out.print(" " + m);
}
}
}
執行結果為:
