1、一般方法,设置标兵,进行查找
class prime{ //检查是否是素数
public void isPrime(){
int m=;
for(int i=;i<=;i++){
double count=;
for(int j =;j<i;j++){
if(i%j==){
count++;
}
}
if(count==||i==){ System.out.print(i + " ");
m++;
}
}
System.out.println("素数有"+m+"个");
} public static void main(String args[]){
new prime().isPrime(); }
}
2、筛选法
(1)、建立一个boolean类型的数组,将下标为奇数的值设为false,为偶数的下标设置为true
(2)、进行遍历值为false的下标,并将下标的倍数值设置为true
(3)、输出值为false的下标
public void isPrime1(){
int m=;
boolean prime[] = new boolean[];
for(int i=;i<=;i++){
if(i%==){
prime[i] = false;
}else{
prime[i] = true;
}
}
for(int i =;i<=;i+=){
if(prime[i]){
for(int j=i+i;j<=;j+=i){
prime[j] = false;
}
}
}
for(int i =;i<=;i++){ if(prime[i]||i==){
m++;
System.out.print(i+" ");
}
}
System.out.print("0~1000之间的素数有"+m+"个");
}
3、高斯猜想‘
n以内的素数个数大约与n/ln(n)相当,或者说,当n很大时,两者数量级相同。这就是著名的素数定理。