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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

查找素数(0~1000)的算法(Java代码)1、⼀般⽅法,设置标兵,进⾏查找
class prime{
//检查是否是素数
public void isPrime(){
int m=0;
for(int i=1;i<=1000;i++){
double count=0;
for(int j =1;j<i;j++){
if(i%j==0){
count++;
}
}
if(count==1||i==1){
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=0;
boolean prime[] = new boolean[1001];
for(int i=1;i<=1000;i++){
if(i%2==0){
prime[i] = false;
}else{
prime[i] = true;
}
}
for(int i =3;i<=1000;i+=2){
if(prime[i]){
for(int j=i+i;j<=1000;j+=i){
prime[j] = false;
}
}
}
for(int i =0;i<=1000;i++){
if(prime[i]||i==2){
m++;
System.out.print(i+"");
}
}
System.out.print("0~1000之间的素数有"+m+"个");
}
3、⾼斯猜想‘
n以内的素数个数⼤约与n/ln(n)相当,或者说,当n很⼤时,两者数量级相同。

这就是著名的素数定理。

相关文档
最新文档