最大的素数因子(回归)

时间:2017-03-01 22:18:32

标签: java

public class LargestPrimeFactor {
    public static void main(String args[]) {
        System.out.println(prime(prime(600851475143L));

    }

    public static long prime(long x) {
        long d = 0;

        for (long s = x; s > 0; s--) {
            if (x % s == 0)
                d = s;

            for (long sp = s; sp > 0; sp--) {
                while (sp != 1) {
                    if (s % sp == 0) {
                        d = sp;
                    }


                }
                if (d == s) {
                    return d;
                }
            }
        }
    }
}

prime()方法一直要求我返回,我已经在代码中写了。有什么我做不对的吗?谢谢。需要更多的文字学习论文学部论文学部论文学部论文学部论文学部论文学部论文学习论文集

2 个答案:

答案 0 :(得分:1)

这是因为你已将return语句放在if中。如果d!= s你的方法没有返回什么。

答案 1 :(得分:1)

您的退货声明属于if条件。在方法的结束括号之前添加return。也许在您的break条件中添加if并在关闭大括号之前添加return d