查找素数(0~1000)的算法(Java代码)

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很大时,两者数量级相同。这就是著名的素数定理。

上一篇:JS_高阶函数(sort)


下一篇:[Arduino] Arduino Uno R3 中文介绍