2017-03-01 69 views
-5
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()方法不断要求我返回,我已经写在code.Is有什么我没做对吗?谢谢。需要更多TEXTsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss最大的素数(返回)

+0

对于某些特定的测试,prime()有一个return语句。你需要一个关于所有可能性的return语句,而不仅仅是一个测试。 – FredK

+0

虽然这里有太多的错误 - 也许尝试一些更基本的东西。 –

回答

1

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

1

您的退货声明是在if条件下。在方法的右花括号之前添加return。也许在您的if条件中加上break,并在加上大括号之前加上return d