Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java素数检查器_Java_Methods_Primes - Fatal编程技术网

Java素数检查器

Java素数检查器,java,methods,primes,Java,Methods,Primes,如果在java中找到一个主检查器,它将使用此方法。 有人能解释一下,为什么for循环指向所搜索素数的平方根有没有更有效的方法? -谢谢大家! public static boolean isPrime(int p){ if(p % 2 == 0 || p < 2){ return false; } else { System.out.

如果在java中找到一个主检查器,它将使用此方法。 有人能解释一下,为什么for循环指向所搜索素数的平方根有没有更有效的方法? -谢谢大家!

    public static boolean isPrime(int p){ 
            if(p % 2 == 0 || p < 2){ 
                return false; 
            }  
            else {  
                System.out.println("Sqare: " + (int)Math.sqrt(p));
                for(int i = 3; i <= (int)Math.sqrt(p); i = i+2){ 
                    if(p % i == 0){  
                        return false; 
                    }
                }
            } 

            return true;  
}
公共静态布尔值isPrime(int p){
如果(p%2==0 | | p<2){
返回false;
}  
否则{
System.out.println(“Sqare:+(int)Math.sqrt(p));

对于(int i=3;i如果一个数字不是素数,那么它至少有两个因子:例如63=7 x 9或121=11 x 11。这两个因子中较小的一个必须小于或等于原始数字的平方根。如果你找到了任何因子,那么这个数字就不是素数,因此你可以在找到第一个因子后停止搜索


通过搜索到平方根并包括平方根,您可以保证找到一个复合数的因子。如果搜索超过平方根而未找到因子,则该数必须以因子1和该数本身为素数。无需在平方根之外继续搜索,因为您将不会学到任何新内容d将浪费时间。

如果一个数字不是素数,那么它至少有两个因子:例如63=7 x 9或121=11 x 11。这两个因子中较小的一个必须小于或等于原始数字的平方根。如果找到任何因子,那么该数字就不是素数,因此一旦找到第一个因子,就可以停止搜索


通过搜索到平方根并包括平方根,您可以保证找到一个复合数的因子。如果搜索超过平方根而未找到因子,则该数必须以因子1和该数本身为素数。无需在平方根之外继续搜索,因为您将不会学到任何新内容d将浪费时间。

可能重复的代码也请检查:如果您想理解代码,请尝试干运行代码。获取不同的数字并尝试在其上运行。或者在调试环境中尝试。注意,当
p
=2时,代码失败。初始的
if
语句需要调整。类似
的返回p==2;
就可以了。另外,如果您想理解代码,请尝试干运行代码。取不同的数字并尝试在其上运行。或者在调试环境中尝试。刚刚注意到,当
p
=2时,代码会失败。初始的
if
语句需要调整。类似
r的内容eturn p==2;
就可以了。