2015-10-14 27 views
1

我一直在研究一些java代碼來顯示素數。我已經儘可能地顯示了0到100之間的所有素數。顯示一定數量的素數

我該怎麼做才能設置一個變量來表示20,它會顯示前20個素數。

我的代碼:

public class PrimeNumber { 

    /** 
    * @param args the command line arguments 
    */ 
private static boolean prime = true; 
private static int count = 20; 

    public static void main(String[] args) { 

     for (int i = 2; i < 100; i++) { 
      for (int j = 2; j < 100; j++) { 
       if(i == j) 
       { 
        continue; 
       } 
       if (i % j == 0) { 
        prime = false; 
        break; 
       } else { 
        prime = true; 
       } 
      } 
      if (prime) { 
       System.out.println(i + " is a Prime:"); 
      } 

     } 

    } 

} 

回答

0

這可能是最簡單的實現,爲有機磷農藥的代碼。

減少count變量,並檢查它在外部for loop,直到它達到zero。此外,內部for-loop應檢查只有當前值(i/2 + 1)。另一半你可以隨時跳過,價值將會分開的數字將是i本身。

public class PrimeNumber {  
    /** 
    * @param args the command line arguments 
    */ 
    private static boolean prime = true; 
    private static int count = 20; 

    public static void main(String[] args) { 

    for (int i = 2; count>0; i++) { 
     for (int j = 2; j < i/2 + 1; j++) { 
     if (i % j == 0) { 
      prime = false; 
      break; 
     } else { 
      prime = true; 
     } 
     } 
     if (prime) { 
     System.out.println(i + " is a Prime:"); 
     count--; 
     }  
    }  
    }  
} 
0

爲此,您必須在for循環中爲i設置上限值。就像你想要的只有前20個素數那麼

public class PrimeNumber { 
private static boolean prime = true; 
private static int count = 20; 

    public static void main(String[] args) { 

     for (int i = 2; i < count+1; i++) { 
      for (int j = 2; j < 100; j++) { 
       if(i == j) 
       { 
        continue; 
       } 
       if (i % j == 0) { 
        prime = false; 
        break; 
       } else { 
        prime = true; 
       } 
      } 
      if (prime) { 
       System.out.println(i + " is a Prime:"); 
      }}}} 
相關問題