方法一:常规方法
***********************************
package com.gem.homework;
public class T5PrimeNumber {
public static void main(String[] args) {
int i,j,num = 1000,index = 0;
for(i = 2;i <= num;i++){
for(j = 2;j <= Math.sqrt(i);j++){
if(i % j == 0)
break;
}
if(j > Math.sqrt(i)){
index++;
System.out.println(i);
}
}
System.out.println(index);
}
}
方法二:boolean 类型 :埃拉托色尼筛选法
***********************************
import java.util.Scanner;
public class SelectNum {
public static void main(String[] args) {
int num,index = 0,m;
Scanner scan = new Scanner(System.in);
System.out.println("请输入数据 :");
num = scan.nextInt();
boolean[] arr = new boolean[num];
arr[0] = arr[1] = false;
for (int i = 2; i < arr.length; i++) {
arr[i] = true;
}
for (int j = 2; j < Math.sqrt(num); j++) {
crossNum(j,j,arr);
for(m = 2;m < Math.sqrt(j);m++){
if(j % m == 0)
break;
}
if(m > Math.sqrt(j)){
arr[j] = true;
}
}
for(int k = 0;k < arr.length;k++){
if(arr[k]){
index++;
System.out.println(k);
}
}
System.out.println("共有 : " + index + " 个质数。");
scan.close();
}
static void crossNum(int line ,int row,boolean[] w ){
for(;line < w.length;line += row){
w[line] = false;
}
}
}