藍橋試題 算法提高 質數 JAVA

問題描述
  給定一個正整數N,請你輸出N以內(不包含N)的質數以及質數的個數。
輸入格式
  輸入一行,包含一個正整數N。
輸出格式
  共兩行。
  第1行包含若干個素數,每兩個素數之間用一個空格隔開,素數從小到大輸出。
  第2行包含一個整數,表示N以內質數的個數。
樣例輸入
10
樣例輸出
2 3 5 7
4

思路:寫一個boolean方法,判斷是否是質數,用List.add存起來,輸出的數字則用list.get取就完了。


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

public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		List<Integer> list = new ArrayList<Integer>();
		int n = scanner.nextInt();
		int ans = 0;
		for (int i = 2; i < n; i++) {
			if (prime(i)) {            // 調用方法
				ans++;                 // 質數總數++
				list.add(i);           // 是就存起來
			}
		}
		for (int i = 0; i < list.size(); i++) {     // 枚舉集合
			System.out.print(list.get(i) + " ");    // 取集合裏的質數
		}
		System.out.println();                       // 換行
		System.out.println(ans);                    // 輸出質數總數
	}

	public static boolean prime(int i) {           // 真假質數
		for (int j = 2; j < i; j++) {
			if (i % j == 0) {
				return false;
			}
		}
		return true;
	}
}

小劇場:我想起那天夕陽下的奔跑。I think of the running in the sunset that day.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章