1. 程式人生 > >求小於一個整數n的所有素數

求小於一個整數n的所有素數

**

主要知識點:

一個只能被自己和1整除的正整數就是素數,也叫質數,這裡有個規律,就是一個數如果不能被大於2且小於這個整數平方根的數整除,那麼這個數就是素數。

實現程式碼:

import java.util.ArrayList;
/*
 * 求小於一個自然數n的所有素數
 */
import java.util.Collections;
import java.util.Scanner;

public class Test{

    public static void main(String[] args) {
        Scanner scan = new
Scanner(System.in); while(true) {//判斷輸入,直到輸入正確 int n = scan.nextInt();//輸入一個整數 if(n>=2) { ArrayList<Integer> al = new ArrayList<Integer>(); for(int i = 2;i<=n;i++) { if(isPrimeNumber(i)) al.add(i); } System.out.println(al); //return;//無註釋則是成功一次後退出
}else { System.out.println("輸入資料不正確,請重新輸入!"); } } } /** * 判斷一個數是否是素數 * @param n * @return */ public static boolean isPrimeNumber(int n) { boolean flag = true; for(int i = 2;i<=Math.sqrt(n); i++) { if(n%i==0
) { flag = false; break; } } return flag; } }

測試結果:

1
輸入資料不正確,請重新輸入!
2
[2]
3
[2, 3]
4
[2, 3]
5
[2, 3, 5]
6
[2, 3, 5]
20
[2, 3, 5, 7, 11, 13, 17, 19]
50
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]