Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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 eclipse时出错_Java_Eclipse - Fatal编程技术网

运行Java eclipse时出错

运行Java eclipse时出错,java,eclipse,Java,Eclipse,当我运行此代码时: package jmv; public class euler3 { static int x=1; static long z = 600851475143L; public static void main(String[] args) { System.out.println(isPrime(123454321)); } public static boolean isPrime(int p){

当我运行此代码时:

package jmv;

public class euler3 {
    static int x=1;
    static long z = 600851475143L;
    public static void main(String[] args) {

        System.out.println(isPrime(123454321));
    }

    public static boolean isPrime(int p){
        for(int y=1 ; y<x ;){
            if(x%y == 0){
                return true; 
            }else{
                return false;
            }           
        }
        return false;
    }
}
包jmv;
公共类euler3{
静态int x=1;
静态长z=600851475143L;
公共静态void main(字符串[]args){
System.out.println(iPrime(123454321));
}
公共静态布尔iPrime(int p){

for(int y=1;y
for(int y=1;y因为你的循环从未执行。
y=1
永远不会低于
x=1。
for循环从未执行,因为
1事实上你没有检查p,函数isPrime()的参数

应该是这样的:

package jmv;

public class euler3 {
    static int x=1;
    static long z = 600851475143L;
    public static void main(String[] args) {
        System.out.println(isPrime(123454321));
    }

    public static boolean isPrime(int p){
        if (p%2 == 0) {
            return false;
        } else  {
            for(int y=3 ; y<p ; y=y+2){
                if(p%y == 0){
                    return false; 
                }          
            }
        }
        return true;
     }
 }
包jmv;
公共类euler3{
静态int x=1;
静态长z=600851475143L;
公共静态void main(字符串[]args){
System.out.println(iPrime(123454321));
}
公共静态布尔iPrime(int p){
如果(p%2==0){
返回false;
}否则{
对于(int y=3;y=3。但这是基础数学,我肯定你忘记了

这样做可以保存许多测试。如果使用y++进行测试,则将检查每个偶数,这是不必要的,因为如果一个数是偶数且大于2,则它不是素数


希望能有帮助!

那么
p
永远不用怎么办?@Djon谢谢你的好意。这是迄今为止唯一指出所有问题的答案,+1。这不是该代码不能正常工作的唯一原因,你还应该解决其他问题。(并更正“低于”).阅读一些java的基本教程,或者阅读一些java的好书,比如Head First java,这些书肯定会对你有所帮助……事实上,你可以通过测试(p/2)来进行更多优化,因为有一个众所周知的定理表明,如果y是素数,p除以整数p,那么y就是
 public static boolean isPrime(int p){
        for(int y = 2 ; y < p ; y++){
            if(p % y == 0){
                return false; 
            }
        }
        return true;
    }
package jmv;

public class euler3 {
    static int x=1;
    static long z = 600851475143L;
    public static void main(String[] args) {
        System.out.println(isPrime(123454321));
    }

    public static boolean isPrime(int p){
        if (p%2 == 0) {
            return false;
        } else  {
            for(int y=3 ; y<p ; y=y+2){
                if(p%y == 0){
                    return false; 
                }          
            }
        }
        return true;
     }
 }