Java中有没有更快的判断一个数为质数的方法

以下是我乍看的直覺,未做實際驗證,請見諒。如果i \u0026lt;= Math.sqrt( number )這個判斷,換成i * i \u0026lt;= number不知會不會快一點?當然,for 循環的次數可能會增加1次。其次,for 循環之前的「排除」部分略做調整,比如: if ( ( number \u0026gt; 2 \u0026amp;\u0026amp; number % 2 == 0 ) || number \u0026lt; 2 ) { return false; }這樣,對於所有大於2的數,比起你截圖裏的程序,可以少做1次邏輯判斷。
■网友

Java中有没有更快的判断一个数为质数的方法

java代码:
public class Is_Prime {
\tpublic static void isprime(int i) {
\t\tint count = 0;
\t\tfor (int j = 1; j \u0026lt;= (i / 2); j++) {
\t\t\tint result = i % j;
\t\t\tif (result == 0)
\t\t\t\tcount++;
\t\t\tif (count \u0026gt;= 2) {
\t\t\t\tSystem.out.println("not prime");
\t\t\t\tbreak;
\t\t\t}
\t\t\tif (j == (i / 2)) {
\t\t\t\tSystem.out.println("is prime");
\t\t\t}

\t\t}
\t}

\tpublic static void main(String args) {
\t\tSystem.out.println("请输入的数:");
\t\tScanner s = new Scanner(System.in);
\t\tint x = s.nextInt();
\t\tisprime(x);
\t}
}

■网友
这事和java有啥关系
■网友
public boolean isOdd(int i) {
return (i \u0026amp; 1) == 1;
}
【Java中有没有更快的判断一个数为质数的方法】


    推荐阅读