JAVA素数算法

来源:百度知道 编辑:UC知道 时间:2024/07/06 20:42:06
import java.io.*;
class sa {
public static void main(String []args) throws IOException {
int i,j;
String a;
BufferedReader str=new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入一个数");
a=str.readLine();
int b=Integer.parseInt(a);
double sqr=Math.sqrt(b);
long tt=Math.round(sqr);
for(i=2;i<=tt;i++) {
if (b%i==0){
System.out.println("不是质数");
break;
}else {
System.out.println("是质数");
break;
}
}
}
}

如果输入是2的时候 那么也就不能判别了 请问怎么可以判别到2

int b=Integer.parseInt(a);
后面加上
if (b==2) {
System.out.println("是质数");
return;
}

我给你个算法,言简意赅

int n = 23;//所求素数范围(0-n以内)
  int j = 1;
  for (int i = 2; i < n; i++) {
   for (j = 2; j < i; j++) {
    if (i % j == 0)
     break;
   }
   if (j >= i) {
    System.out.println(i);
   }
  }

在循环之前先加个
if(b==2)
.....

虽然是耍赖 但是简洁而有效

if (b%i==0)改为if (b%i==0 || b!=2)

质数
什么是质数?就是在所有比1大的整数中,除了1和它本身以外,不再有别的约数,这种整数叫做质数,质数又叫做素数。
import java.io.*;
class sa {
public static void main(String []args) th