2017-03-01 68 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