2014-01-12 44 views
1

我想在Java中做一個素數查找器,並且我意識到已經有很多東西了。我在運行時遇到計算錯誤,沒有「快速修復」。 以下是錯誤:"Exception in thread "main" java.lang.ArithmeticException:/by zero at PrimeNumber.main(PrimeNumber.java:12)"素數查找器計算錯誤

下面是代碼:

public class PrimeNumber { 
    public static void main(String rane[]){ 

     int f1 = 0; 
     int f2 = 0; 
     int m = 0; 
     int p = 0; 

     loop: 
     for (p = f1 % f2; p > 0; f1 += 1){ 
      if (f1 < 50){ 
       //Do nothing 
      }else{ 
       f2 += 1; 
       if (f2 > 50){ 
        System.out.println("Done!"); 
        break; 
       } 
      } 
      if (p == m){ 
       f1 += 1; 
       f2 += 2; 
       m = 0; 
       break loop; 
      } 
     } 
    } 
} 

請讓我知道如果我能縮短這個代碼或使它更好。 謝謝!

+1

不要試圖從1開始在'0%0'處開始循環,並記住要測試可分性! –

回答

2

井的for循環計算

p = f1 % f2 

但f2是0和用於計算除法由模的第一次迭代。爲什麼不從有意義的價值出發?

+0

你可能會注意到'f1'也是'0'。 –

+0

是的,但這不會導致算術錯誤。 0/3 = 0 –